p_table <- function(tab_data, ...) {
  tab_data_2 <- deparse(substitute(tab_data))
  
  table_p <- do.call(CreateTableOne, 
                     list(data = as.name(tab_data_2), includeNA = TRUE, ...))
  table_p_out <- print(table_p,
                       showAllLevels = TRUE,
                       printToggle = FALSE)
  kable(table_p_out,
        align = "c")
}
uni_var <- function(test_var, data_imp) {
                
        cat("_________________________________________________")
        cat("\n")
        cat("   \n##", test_var)
        cat("\n")
        cat("_________________________________________________")
        cat("\n")
        
        f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
                              as.name(test_var),
                              sep = " ~ " ))
        
        data_imp_2 <- deparse(substitute(data_imp))
        km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
        print(km_fit)
        cat("\n")
        print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
        cat("\n")
        cat("\n")
        cat("\n")
        cat("   \n## Univariable Cox Proportional Hazard Model for: ", test_var)
        cat("\n")
        cat("\n")
        n_levels <- nlevels(data_imp[[test_var]])
        if(n_levels == 1){
                print("Only one level, no Cox model performed")
                cat("\n")
        } else {
                cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
                print(summary(cox_fit))
                cat("\n")
                
                do.call("ggforest",
                         list(model = cox_fit, data = as.name(data_imp_2)))
        }
        cat("\n")
        cat("\n")
        cat("\n")
        cat("   \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
        p <- do.call("ggsurvplot",
                     list(fit = km_fit, data = as.name(data_imp_2),
                          palette = "jco", censor = FALSE, legend = "right",
                          linetype = "strata", xlab = "Time (Months)"))
        print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
               1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
               3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
               8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
               2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
               1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
                   "AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
                   "MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
                   "UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
                   "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
                   "DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
                   "REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
                   "TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                   "TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
                   "CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
                   "CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
                   "CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
                   "CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
                   "CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
                   "CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
                   "CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
                   "CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
                   "CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
                   "CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
                   "CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
                   "RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
                   "RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
                   "REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
                   "RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
                   "RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
                   "REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
                   "DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
                   "RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
                   "PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
                   "DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
                   "RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
                   "RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
                   "METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
                   "METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
                       
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
NHLextr <- read_fwf('NCDBPUF_NHLExtr.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
breast <-  read_fwf('NCDBPUF_Breast.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vulva <-  read_fwf('NCDBPUF_Vulva.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vagina <-  read_fwf('NCDBPUF_Vagina.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
penis <-  read_fwf('NCDBPUF_Penis.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
otleuk <- read_fwf('NCDBPUF_OtLeuk.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
  
otheracuteleuk  <- read_fwf('NCDBPUF_OtAcLeuk.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
  
ALL  <- read_fwf('NCDBPUF_ALymLeuk.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, 
                 vulva, vagina, penis, NHLextr, otleuk, otheracuteleuk, ALL)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina, 
   penis, NHLextr, otleuk, otheracuteleuk, ALL)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C000", 
"C001", 
"C002", 
"C003", 
"C004", 
"C005", 
"C006", 
"C008",
"C009", 
"C019", 
"C020", 
"C021",
"C022", 
"C023", 
"C024", 
"C028", 
"C029",
"C030",
"C031",
"C039", 
"C040", 
"C041", 
"C048",
"C049", 
"C050", 
"C051", 
"C052", 
"C058", 
"C059",
"C060", 
"C061", 
"C062", 
"C068", 
"C069", 
"C079",  
"C098",
"C099",
"C111",
"C142",
"C300",
"C379",
"C420",
"C422",
"C424",
#skin/melanoma
                                 "C440", "C441", "C442", "C443", "C444", "C445",
                                 "C446", "C447", "C448", "C449",
                                 
                                 #breast - nipple
                                 "C500",
                                 
                                 #vagina/vulva
                                 "C510", "C511", "C512", "C518", "C519", "C529",
                                 
                                 #penis
                                 "C600", "C601", "C602", "C608", "C609", "C639",
"C770",
"C771",
"C772",
"C773",
"C774",
"C775",
"C778",
"C779"),
SITE_TEXT = c(
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2 External Lip: NOS",
"C00.3 Lip: Upper Mucosa",
"C00.4 Lip: Lower Mucosa",
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure",
"C00.8 Lip: Overlapping",
"C00.9 Lip NOS",
"C01.9 Tongue: Base NOS",
"C02.0 Tongue: Dorsal NOS",
"C02.1 Tongue: Border, Tip",
"C02.2 Tongue: Ventral NOS",
"C02.3 Tongue: Anterior NOS",
"C02.4 Lingual Tonsil",
"C02.8 Tongue: Overlapping",
"C02.9 Tongue: NOS",
"C03.0 Gum: Upper",
"C03.1 Gum: Lower",
"C03.9 Gum NOS",
"C04.0 Mouth: Anterior Floor",
"C04.1 Mouth: Lateral Floor",
"C04.8 Mouth: Overlapping Floor",
"C04.9 Floor of Mouth NOS",
"C05.0 Hard Palate",
"C05.1 Soft Palate NOS",
"C05.2 Uvula",
"C05.8 Palate: Overlapping",
"C05.9 Palate NOS",
"C06.0 Cheek Mucosa",
"C06.1 Mouth: Vestibule",
"C06.2 Retromolar Area",
"C06.8 Mouth: Other Overlapping",
"C06.9 Mouth NOS",
"C07.9 Parotid Gland",
  "C09.8 Tonsil: Overlapping",
  "C09.9 Tonsil NOS",
  "C11.1 Nasopharynx: Poster Wall", 
  "C14.2 Waldeyer Ring",
  "C30.0 Nasal Cavity",
  "C37.9 Thymus",
"C42.0 Blood",
  "C42.2 Spleen",
"C42.4 Hematopoietic NOS",
 #skin
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS", 
#breast
"C50.0 Nipple",
#vulva/vagina
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C52.9 Vagina, NOS",
#penis
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS",
  "C77.0 Lymph Nodes: HeadFaceNeck",
  "C77.1 Intrathoracic Lymph Nodes",
  "C77.2 Intra-abdominal LymphNodes",
  "C77.3 Lymph Nodes of axilla or arm ",
  "C77.4 Lymph Nodes: Leg",
  "C77.5 Pelvic Lymph Nodes",
  "C77.8 Lymph Nodes: multiple region",
  "C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE) 
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
              "DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS",  "RAD_REGIONAL_DOSE_CGY",
              "RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", 
              "DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
              "RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
        mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
                                            "Community Cancer Program" = "1",
                                            "Comprehensive Comm Ca Program" = "2",
                                            "Academic/Research Program" = "3",
                                            "Integrated Network Ca Program" = "4",
                                            "Other" = "9")) %>%
        mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
                                            "New England" = "1",
                                            "Middle Atlantic" = "2",
                                            "South Atlantic" = "3",
                                            "East North Central" = "4",
                                            "East South Central" = "5",
                                            "West North Central" = "6",
                                            "West South Central" = "7",
                                            "Mountain" = "8",
                                            "Pacific" = "9",
                                            "out of US" = "0")) %>%
        mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
                                                 "Northeast" = c("1", "2"),
                                                 "South" = c("3", "7"),
                                                 "Midwest" = c("4", "5", "6"),
                                                 "West" = c("8", "9"))) %>%
        mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
        mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
        mutate(SEX_F = fct_recode(SEX,
                                "Male" = "1",
                                "Female" = "2")) %>%
        mutate(RACE_F = fct_collapse(RACE,
                                "White" = c("01"),
                                "Black" = c("02"),
                                "Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
                                            "16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
                                            "32", "96", "97"),
                                "Other/Unk" = c("03", "98", "99"))) %>%
        mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
                                       "Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
                                       "No" = c("0"),
                                       "Unknown" = c("9"))) %>%
        mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
                                         "None" = "0",
                                         "Private" = "1",
                                         "Medicaid" = "2",
                                         "Medicare" = "3",
                                         "Other Government" = "4",
                                         "Unknown" = "9")) %>%
        mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
                                         "Private")) %>%
        mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
                                      "Less than $38,000" = "1",
                                      "$38,000 - $47,999" = "2",
                                      "$48,000 - $62,999" = "3",
                                      "$63,000 +" = "4")) %>%
        mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
                                        "21% or more" = "1",
                                        "13 - 20.9%" = "2",
                                        "7 - 12.9%" = "3",
                                        "Less than 7%" = "4")) %>%
        mutate(U_R_F = fct_collapse(UR_CD_13,
                                    "Metro" = c("1", "2", "3"),
                                    "Urban" = c("4", "5", "6", "7"),
                                    "Rural" = c("8", "9"))) %>%
        mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
                                              All_Part_Prim = c("10", "11", "12", "13",
                                                                "14", "20", "21", "22"),
                                              Other_Facility = c("00"))) %>%
        mutate(GRADE_F = fct_recode(GRADE,
                                  "Gr I: Well Diff" = "1",
                                  "Gr II: Mod Diff" = "2",
                                  "Gr III: Poor Diff" = "3",
                                  "Gr IV: Undiff/Anaplastic" = "4",
                                  "NA/Unkown" = "9")) %>%
        mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
        mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
        mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
        mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
                                        "1")) %>%
        mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
                                        "1")) %>%
        mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
                                    "No Residual" = "0",
                                    "Residual, NOS" = "1",
                                    "Microscopic Resid" = "2",
                                    "Macroscopic Resid" = "3",
                                    "Not evaluable" = "7",
                                    "No surg" = "8",
                                    "Unknown" = "9")) %>%
        mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
                                         "Yes" = c("1", "2", "3"),
                                         "No" = c("0"),
                                         "No surg/Unk/NA" = c("7", "8", "9"))) %>%
        mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
                                                 "No_Surg_or_No_Readmit" = "0",
                                                 "Unplan_Readmit_Same" = "1",
                                                 "Plan_Readmit_Same" = "2",
                                                 "PlanUnplan_Same" = "3",
                                                 "Unknown" = "4")) %>%
        mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
                                                "None" = "0",
                                                "Beam Radiation" = "1",
                                                "Radioactive Implants" = "2",
                                                "Radioisotopes" = "3",
                                                "Beam + Imp or Isotopes" = "4",
                                                "Radiation, NOS" = "5",
                                                "Unknown" = "9")) %>%
        mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
                                                 "Alive_30" = "0",
                                                 "Dead_30" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
                                                 "Alive_90" = "0",
                                                 "Dead_90" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
                                                      "Neg_LymphVasc_Inv" = "0",
                                                      "Pos_LumphVasc_Inv" = "1",
                                                      "N_A" = "8",
                                                      "Unknown" = "9")) %>%
        mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
                                                     "No_Surg" = "0",
                                                     "Robot_Assist" = "1",
                                                     "Robot_to_Open" = "2",
                                                     "Endo_Lap" = "3",
                                                     "Endo_Lap_to_Open" = "4",
                                                     "Open_Unknown" = "5",
                                                     "Unknown" = "9")) %>%
        mutate(All = "All") %>%
        mutate(All = factor(All)) %>%
        mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
                                                    "Surg performed" = "0",
                                                    "Surg not recommended" = "1",
                                                    "No surg due to pt factors" = "2",
                                                    "No surg, pt died" = "5",
                                                    "Surg rec, not done" = "6",
                                                    "Surg rec, pt refused" = "7",
                                                    "Surg rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_SURGERY == "9",
                                          "Ukn",
                                          "No"))) %>%
        mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
                             SURGERY_YN == "No" ~ FALSE,
                             TRUE ~ NA))  %>%
        mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
                                                    "Rad performed" = "0",
                                                    "Rad not recommended" = "1",
                                                    "No Rad due to pt factors" = "2",
                                                    "No Rad, pt died" = "5",
                                                    "Rad rec, not done" = "6",
                                                    "Rad rec, pt refused" = "7",
                                                    "Rad rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_RADIATION == "9",
                                          NA,
                                          "No"))) %>%
        mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
                                                   "None or Surg or Rad" = "0",
                                                   "Rad before Surg" = "2",
                                                   "Surg before Rad" = "3",
                                                   "Rad before and after Surg" = "4",
                                                   "Intraop Rad" = "5",
                                                   "Intraop Rad plus other" = "6",
                                                   "Unknown" = "9")) %>%
        mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                     "Surg Alone",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                            "Rad Alone",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
                                                   "No Treatment",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2",
                                                          "Rad then Surg",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3",
                                                                 "Surg then Rad",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4",
                                                                        "Rad before and after Surg",
                                                                        "Other"))))))) %>%
        mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
                                          "Surg Alone",
                                          "Surg then Rad",
                                          "Rad Alone")) %>%
        mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
                                       "No" = c("00", "82", "85", "86", "87"),
                                       "Yes" = c("01", "02", "03"),
                                       "Ukn" = c("88", "99"))) %>%
        mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                     "Surg, No rad, No Chemo",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                            "Rad, No Surg, No Chemo",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                                   "No Surg, No Rad, No Chemo",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
                                                          "Rad then Surg, No Chemo",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
                                                                 "Surg then Rad, No Chemo",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
                                                                        "Rad before and after Surg, No Chemo",
                                ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                       "Surg, No rad, Yes Chemo",
                                       ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                              "Rad, No Surg, Yes Chemo",
                                              ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                                     "No Surg, No Rad, Yes Chemo",
                                                     ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
                                                            "Rad then Surg, Yes Chemo",
                                                            ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
                                                                   "Surg then Rad, Yes Chemo",
                                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
                                                                          "Rad before and after Surg, Yes Chemo",
                                                                          "Other"))))))))))))) %>%
        mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
        mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
        mutate(T_SIZE = ifelse(T_SIZE == 0,
                                "No Tumor",
                                ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
                                       "< 1 cm",
                                       ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
                                              "1-2 cm",
                                              ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
                                                     "2-3 cm",
                                                     ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
                                                            "3-4 cm",
                                                            ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
                                                                   "4-5 cm",
                                                                   ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
                                                                          "5-6 cm",
                                                                          ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
                                                                                         T_SIZE == 980 | T_SIZE == 989 |
                                                                                         T_SIZE == 997,
                                                                          ">6 cm",
                                                                          ifelse(T_SIZE == 988 | T_SIZE == 999,
                                                                                 "NA_unk",
                                                                                 "Microscopic focus")))))))))) %>%
        mutate(T_SIZE = factor(T_SIZE)) %>%
        mutate(T_SIZE = fct_relevel(T_SIZE,
                                     "No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
                                       "4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
        mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
                                      CS_METS_DX_BONE == "1" ~ "Bone",
                                      CS_METS_DX_BRAIN == "1" ~ "Brain",
                                      CS_METS_DX_LIVER == "1" ~ "Liver",
                                      TRUE ~ "None/Other/Unk/NA")) %>%
        mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
                                               "Non-Expansion State" = "0",
                                               "Jan 2014 Expansion States" = "1",
                                               "Early Expansion States (2010-13)" = "2",
                                               "Late Expansion States (> Jan 2014)" = "3",
                                               "Suppressed for Ages 0 - 39" = "9"))  %>%
        mutate(EXPN_GROUP =  case_when(MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
                                       
                                       MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% 
                                          c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
               
                                       MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
                                       
                                        MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
                    
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") & 
                                        YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
                                       
                                       MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
  
  mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013")) %>%
  
  mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>% 
  
  mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE, 
                        ifelse(CHEMO_YN == "Ukn", NA, 
                               TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
                 "HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
                 "CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
                 "BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
                 "MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
        mutate_at(fact_vars_2, funs(factor(.)))

Extract Data of Interest

# Non-Hodgkin Lymphoma Sites
site_code <- c( 
#additional sites
 #lip  
  "C000", "C001", "C002", "C003", "C004", "C005","C006", "C008","C009",
                                  
                                 
#skin/melanoma
  "C440", "C441", "C442", "C443", "C444", "C445", "C446", "C447", "C448", "C449",
                                 
 #breast - nipple
  "C500",
                                 
#vagina/vulva
  "C510", "C511", "C512", "C518", "C519", "C529",
                                 
#penis
 "C600", "C601", "C602", "C608", "C609", "C639")
#mycosis fungoides, Sezary syndrome, subcutaneous panniculitis-like T-cell lymphoma,
#cutaneous T-cell lymphoma, NOS, primary cutaneous CD30+T-cell lymphoma, 
#NK/T-cell lymphoma, primary cutaneous gamma-delta T-cell lymphoma, 
#and blastic NK cell lymphoma, respectively
histo_code <- c("9700", "9701", "9708", "9709", "9718", "9719", "9726", "9727")
behavior_code <- c("3")
data <- dat %>%
        filter(BEHAVIOR %in% behavior_code) %>%
        filter(PRIMARY_SITE %in% site_code) %>%
        filter(HISTOLOGY %in% histo_code) %>%
        #filter(AGE >= 18) %>%
        filter(is.na(PUF_VITAL_STATUS) == FALSE) %>%
        filter(is.na(DX_LASTCONTACT_DEATH_MONTHS) == FALSE)  %>%
        filter(SEQUENCE_NUMBER == "00") 
#file_path <- c("/Users/beastatlife/Google Drive/Penn/Research/Barbieri/NCDB")
#save(data,
#      file = paste0(file_path, "/CTCL_data.Rda"))
# Non-Hodgkin Lymphoma Sites
site_code <- c( 
#additional sites
 #lip  
  "C000", "C001", "C002", "C003", "C004", "C005","C006", "C008","C009",
                                  
                                 
#skin/melanoma
  "C440", "C441", "C442", "C443", "C444", "C445", "C446", "C447", "C448", "C449",
                                 
 #breast - nipple
  "C500",
                                 
#vagina/vulva
  "C510", "C511", "C512", "C518", "C519", "C529",
                                 
#penis
 "C600", "C601", "C602", "C608", "C609", "C639")
#load("MF_data.Rda")

Data including skin tumors was obtained from the NCBD on October 7, 2019. Cases that were included in this analysis were those with:

  1. Site codes: C000, C001, C002, C003, C004, C005, C006, C008, C009, C440, C441, C442, C443, C444, C445, C446, C447, C448, C449, C500, C510, C511, C512, C518, C519, C529, C600, C601, C602, C608, C609, C639
  2. Histology codes: 9700, 9701, 9708, 9709, 9718, 9719, 9726, 9727
  3. Behavior codes: 3

Patients were excluded if they didn’t have values for either follow up or vital status.

Patients were excluded if they had surgery to a distant site using RX_SUMM_SURG_OTH_REGDIS. This was done to avoid confounding of different surgical procedures. We are only interested in surgery at the primary site. These distant site surgeries were being counted in the surgery/radiation sequence and thus to simplify analysis they were removed.

data %>%
        CreateTableOne(data = .,
                     vars = c("RX_SUMM_SURG_OTH_REGDIS"),
                     includeNA = TRUE) %>%
        print(.,
              showAllLevels = TRUE)
                             
                              level Overall      
  n                                 10841        
  RX_SUMM_SURG_OTH_REGDIS (%) 0     10607 (97.8) 
                              1        33 ( 0.3) 
                              2        10 ( 0.1) 
                              3         9 ( 0.1) 
                              4         8 ( 0.1) 
                              5         1 ( 0.0) 
                              9       173 ( 1.6) 
data <- data %>%
        filter(RX_SUMM_SURG_OTH_REGDIS == "0") 

Race was grouped as white, black, asian, other/unknown Stage was grouped into 0, I, II, III, IV, NA_Unknown, stage 0 was removed Whether surgery was performed was based on the REASON_FOR_NO_SURGERY variable. The SURGERY_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Whether radiation was performed was based on the REASON_FOR_NO_RADIATION variable. The RADIATION_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Table of variables for all cases:

p_table(data,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT", "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE", "EXPN_GROUP"))
level Overall
n 10607
FACILITY_TYPE_F (%) Community Cancer Program 368 ( 3.5)
Comprehensive Comm Ca Program 1652 ( 15.6)
Academic/Research Program 6246 ( 58.9)
Integrated Network Ca Program 611 ( 5.8)
NA 1730 ( 16.3)
FACILITY_LOCATION_F (%) New England 634 ( 6.0)
Middle Atlantic 1960 ( 18.5)
South Atlantic 1891 ( 17.8)
East North Central 1535 ( 14.5)
East South Central 492 ( 4.6)
West North Central 570 ( 5.4)
West South Central 480 ( 4.5)
Mountain 443 ( 4.2)
Pacific 872 ( 8.2)
NA 1730 ( 16.3)
FACILITY_GEOGRAPHY (%) Northeast 2594 ( 24.5)
South 2371 ( 22.4)
Midwest 2597 ( 24.5)
West 1315 ( 12.4)
NA 1730 ( 16.3)
AGE (mean (sd)) 57.02 (17.60)
AGE_F (%) (0,54] 4332 ( 40.8)
(54,64] 2437 ( 23.0)
(64,74] 2098 ( 19.8)
(74,100] 1735 ( 16.4)
NA 5 ( 0.0)
AGE_40 (%) (0,40] 1844 ( 17.4)
(40,100] 8758 ( 82.6)
NA 5 ( 0.0)
SEX_F (%) Male 6026 ( 56.8)
Female 4581 ( 43.2)
RACE_F (%) White 8006 ( 75.5)
Black 1877 ( 17.7)
Other/Unk 409 ( 3.9)
Asian 315 ( 3.0)
HISPANIC (%) No 9463 ( 89.2)
Yes 633 ( 6.0)
Unknown 511 ( 4.8)
INSURANCE_F (%) Private 5618 ( 53.0)
None 365 ( 3.4)
Medicaid 622 ( 5.9)
Medicare 3580 ( 33.8)
Other Government 144 ( 1.4)
Unknown 278 ( 2.6)
INCOME_F (%) Less than $38,000 1757 ( 16.6)
$38,000 - $47,999 2143 ( 20.2)
$48,000 - $62,999 2786 ( 26.3)
$63,000 + 3861 ( 36.4)
NA 60 ( 0.6)
EDUCATION_F (%) 21% or more 1651 ( 15.6)
13 - 20.9% 2543 ( 24.0)
7 - 12.9% 3399 ( 32.0)
Less than 7% 2959 ( 27.9)
NA 55 ( 0.5)
U_R_F (%) Metro 9027 ( 85.1)
Urban 1145 ( 10.8)
Rural 133 ( 1.3)
NA 302 ( 2.8)
CROWFLY (mean (sd)) 40.56 (118.90)
CDCC_TOTAL_BEST (%) 0 9485 ( 89.4)
1 856 ( 8.1)
2 192 ( 1.8)
3 74 ( 0.7)
SITE_TEXT (%) C00.0 External Lip: Upper NOS 0 ( 0.0)
C00.1 External Lip: Lower NOS 0 ( 0.0)
C00.2 External Lip: NOS 0 ( 0.0)
C00.3 Lip: Upper Mucosa 0 ( 0.0)
C00.4 Lip: Lower Mucosa 0 ( 0.0)
C00.5 Lip: Mucosa NOS 0 ( 0.0)
C00.6 Lip: Commissure 0 ( 0.0)
C00.8 Lip: Overlapping 0 ( 0.0)
C00.9 Lip NOS 0 ( 0.0)
C01.9 Tongue: Base NOS 0 ( 0.0)
C02.0 Tongue: Dorsal NOS 0 ( 0.0)
C02.1 Tongue: Border, Tip 0 ( 0.0)
C02.2 Tongue: Ventral NOS 0 ( 0.0)
C02.3 Tongue: Anterior NOS 0 ( 0.0)
C02.4 Lingual Tonsil 0 ( 0.0)
C02.8 Tongue: Overlapping 0 ( 0.0)
C02.9 Tongue: NOS 0 ( 0.0)
C03.0 Gum: Upper 0 ( 0.0)
C03.1 Gum: Lower 0 ( 0.0)
C03.9 Gum NOS 0 ( 0.0)
C04.0 Mouth: Anterior Floor 0 ( 0.0)
C04.1 Mouth: Lateral Floor 0 ( 0.0)
C04.9 Floor of Mouth NOS 0 ( 0.0)
C05.0 Hard Palate 0 ( 0.0)
C05.1 Soft Palate NOS 0 ( 0.0)
C05.2 Uvula 0 ( 0.0)
C05.8 Palate: Overlapping 0 ( 0.0)
C05.9 Palate NOS 0 ( 0.0)
C06.0 Cheek Mucosa 0 ( 0.0)
C06.1 Mouth: Vestibule 0 ( 0.0)
C06.2 Retromolar Area 0 ( 0.0)
C06.8 Mouth: Other Overlapping 0 ( 0.0)
C06.9 Mouth NOS 0 ( 0.0)
C07.9 Parotid Gland 0 ( 0.0)
C09.8 Tonsil: Overlapping 0 ( 0.0)
C09.9 Tonsil NOS 0 ( 0.0)
C11.1 Nasopharynx: Poster Wall 0 ( 0.0)
C14.2 Waldeyer Ring 0 ( 0.0)
C30.0 Nasal Cavity 0 ( 0.0)
C37.9 Thymus 0 ( 0.0)
C42.0 Blood 0 ( 0.0)
C42.2 Spleen 0 ( 0.0)
C42.4 Hematopoietic NOS 0 ( 0.0)
C44.0 Skin of lip, NOS 38 ( 0.4)
C44.1 Eyelid 31 ( 0.3)
C44.2 External ear 51 ( 0.5)
C44.3 Skin of ear and unspecified parts of face 721 ( 6.8)
C44.4 Skin of scalp and neck 416 ( 3.9)
C44.5 Skin of trunk 1762 ( 16.6)
C44.6 Skin of upper limb and shoulder 866 ( 8.2)
C44.7 Skin of lower limb and hip 1210 ( 11.4)
C44.8 Overlapping lesion of skin 820 ( 7.7)
C44.9 Skin, NOS 4677 ( 44.1)
C50.0 Nipple 1 ( 0.0)
C51.0 Labium majus 0 ( 0.0)
C51.1 Labium minus 0 ( 0.0)
C51.2 Clitoris 0 ( 0.0)
C51.8 Overlapping lesion of vulva 0 ( 0.0)
C51.9 Vulva, NOS 6 ( 0.1)
C52.9 Vagina, NOS 2 ( 0.0)
C60.0 Prepuce 2 ( 0.0)
C60.1 Glans penis 0 ( 0.0)
C60.2 Body of penis 0 ( 0.0)
C60.8 Overlapping lesion of penis 0 ( 0.0)
C60.9 Penis 4 ( 0.0)
C63.2 Scrotum, NOS 0 ( 0.0)
C77.0 Lymph Nodes: HeadFaceNeck 0 ( 0.0)
C77.1 Intrathoracic Lymph Nodes 0 ( 0.0)
C77.2 Intra-abdominal LymphNodes 0 ( 0.0)
C77.3 Lymph Nodes of axilla or arm 0 ( 0.0)
C77.4 Lymph Nodes: Leg 0 ( 0.0)
C77.5 Pelvic Lymph Nodes 0 ( 0.0)
C77.8 Lymph Nodes: multiple region 0 ( 0.0)
C77.9 Lymph Node NOS 0 ( 0.0)
BEHAVIOR (%) 2 0 ( 0.0)
3 10607 (100.0)
GRADE_F (%) Gr I: Well Diff 10 ( 0.1)
Gr II: Mod Diff 9 ( 0.1)
Gr III: Poor Diff 7 ( 0.1)
Gr IV: Undiff/Anaplastic 34 ( 0.3)
5 7987 ( 75.3)
6 311 ( 2.9)
7 9 ( 0.1)
8 59 ( 0.6)
NA/Unkown 2181 ( 20.6)
DX_STAGING_PROC_DAYS (mean (sd)) 4.06 (53.56)
TNM_CLIN_T (%) N_A 4716 ( 44.5)
c0 0 ( 0.0)
c1 1675 ( 15.8)
c1A 248 ( 2.3)
c1B 118 ( 1.1)
c1C 0 ( 0.0)
c1MI 0 ( 0.0)
c2 810 ( 7.6)
c2A 82 ( 0.8)
c2B 112 ( 1.1)
c2C 0 ( 0.0)
c2D 0 ( 0.0)
c3 399 ( 3.8)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c4 438 ( 4.1)
c4A 0 ( 0.0)
c4B 0 ( 0.0)
c4C 0 ( 0.0)
c4D 0 ( 0.0)
cX 1749 ( 16.5)
pA 0 ( 0.0)
pIS 0 ( 0.0)
NA 260 ( 2.5)
TNM_CLIN_N (%) N_A 4715 ( 44.5)
c0 3400 ( 32.1)
c1 194 ( 1.8)
c1A 10 ( 0.1)
c1B 9 ( 0.1)
c2 33 ( 0.3)
c2A 1 ( 0.0)
c2B 6 ( 0.1)
c2C 0 ( 0.0)
c3 62 ( 0.6)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c3C 0 ( 0.0)
c4 0 ( 0.0)
cX 1933 ( 18.2)
NA 244 ( 2.3)
TNM_CLIN_M (%) N_A 4715 ( 44.5)
c0 5388 ( 50.8)
c0I+ 0 ( 0.0)
c1 72 ( 0.7)
c1A 1 ( 0.0)
c1B 0 ( 0.0)
c1C 0 ( 0.0)
NA 431 ( 4.1)
TNM_CLIN_STAGE_GROUP (%) 0 0 ( 0.0)
1 1472 ( 13.9)
1A 3752 ( 35.4)
1B 1345 ( 12.7)
1C 0 ( 0.0)
2 141 ( 1.3)
2A 232 ( 2.2)
2B 510 ( 4.8)
2C 0 ( 0.0)
3 139 ( 1.3)
3A 285 ( 2.7)
3B 132 ( 1.2)
3C 0 ( 0.0)
4 357 ( 3.4)
4A 355 ( 3.3)
4A1 75 ( 0.7)
4A2 31 ( 0.3)
4B 176 ( 1.7)
4C 0 ( 0.0)
N_A 23 ( 0.2)
99 1575 ( 14.8)
NA 7 ( 0.1)
TNM_PATH_T (%) N_A 4655 ( 43.9)
p0 0 ( 0.0)
p1 786 ( 7.4)
p1A 89 ( 0.8)
p1B 41 ( 0.4)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 351 ( 3.3)
p2A 19 ( 0.2)
p2B 33 ( 0.3)
p2C 0 ( 0.0)
p2D 0 ( 0.0)
p3 165 ( 1.6)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p4 196 ( 1.8)
p4A 0 ( 0.0)
p4B 0 ( 0.0)
p4C 0 ( 0.0)
p4D 0 ( 0.0)
pA 0 ( 0.0)
pIS 0 ( 0.0)
pX 2216 ( 20.9)
NA 2056 ( 19.4)
TNM_PATH_N (%) N_A 4654 ( 43.9)
p0 762 ( 7.2)
p0I- 0 ( 0.0)
p0I+ 0 ( 0.0)
p0M- 0 ( 0.0)
p0M+ 0 ( 0.0)
p1 45 ( 0.4)
p1A 4 ( 0.0)
p1B 4 ( 0.0)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 17 ( 0.2)
p2A 0 ( 0.0)
p2B 1 ( 0.0)
p2C 0 ( 0.0)
p3 18 ( 0.2)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p3C 0 ( 0.0)
p4 0 ( 0.0)
pX 3131 ( 29.5)
NA 1971 ( 18.6)
TNM_PATH_M (%) N_A 4467 ( 42.1)
p0 0 ( 0.0)
p1 32 ( 0.3)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
pX 2330 ( 22.0)
NA 3778 ( 35.6)
TNM_PATH_STAGE_GROUP (%) 0 0 ( 0.0)
1 574 ( 5.4)
1A 1086 ( 10.2)
1B 321 ( 3.0)
1C 0 ( 0.0)
2 61 ( 0.6)
2A 69 ( 0.7)
2B 141 ( 1.3)
2C 0 ( 0.0)
3 54 ( 0.5)
3A 80 ( 0.8)
3B 49 ( 0.5)
3C 0 ( 0.0)
4 152 ( 1.4)
4A 112 ( 1.1)
4A1 1 ( 0.0)
4B 84 ( 0.8)
4C 0 ( 0.0)
N_A 21 ( 0.2)
99 6553 ( 61.8)
NA 1249 ( 11.8)
DX_RX_STARTED_DAYS (mean (sd)) 46.58 (69.45)
DX_SURG_STARTED_DAYS (mean (sd)) 16.09 (39.22)
DX_DEFSURG_STARTED_DAYS (mean (sd)) 21.76 (48.11)
MARGINS (%) No Residual 794 ( 7.5)
Residual, NOS 166 ( 1.6)
Microscopic Resid 68 ( 0.6)
Macroscopic Resid 63 ( 0.6)
Not evaluable 418 ( 3.9)
No surg 8183 ( 77.1)
Unknown 915 ( 8.6)
MARGINS_YN (%) No 794 ( 7.5)
Yes 297 ( 2.8)
No surg/Unk/NA 9516 ( 89.7)
SURG_DISCHARGE_DAYS (mean (sd)) 1.68 (12.10)
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 10284 ( 97.0)
Unplan_Readmit_Same 37 ( 0.3)
Plan_Readmit_Same 58 ( 0.5)
PlanUnplan_Same 1 ( 0.0)
9 227 ( 2.1)
RX_SUMM_RADIATION_F (%) None 7970 ( 75.1)
Beam Radiation 2495 ( 23.5)
Radioactive Implants 26 ( 0.2)
Radioisotopes 1 ( 0.0)
Beam + Imp or Isotopes 1 ( 0.0)
Radiation, NOS 52 ( 0.5)
Unknown 62 ( 0.6)
PUF_30_DAY_MORT_CD_F (%) Alive_30 1941 ( 18.3)
Dead_30 9 ( 0.1)
Unknown 38 ( 0.4)
NA 8619 ( 81.3)
PUF_90_DAY_MORT_CD_F (%) Alive_90 1880 ( 17.7)
Dead_90 34 ( 0.3)
Unknown 74 ( 0.7)
NA 8619 ( 81.3)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 51.17 (40.66)
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 0 ( 0.0)
Pos_LumphVasc_Inv 0 ( 0.0)
N_A 5920 ( 55.8)
Unknown 0 ( 0.0)
NA 4687 ( 44.2)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 5006 ( 47.2)
Robot_Assist 0 ( 0.0)
Robot_to_Open 0 ( 0.0)
Endo_Lap 21 ( 0.2)
Endo_Lap_to_Open 2 ( 0.0)
Open_Unknown 800 ( 7.5)
Unknown 91 ( 0.9)
NA 4687 ( 44.2)
SURG_RAD_SEQ (%) Surg Alone 1648 ( 15.5)
Surg then Rad 630 ( 5.9)
Rad Alone 1900 ( 17.9)
No Treatment 6259 ( 59.0)
Other 158 ( 1.5)
Rad before and after Surg 3 ( 0.0)
Rad then Surg 9 ( 0.1)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 1253 ( 11.8)
Surg then Rad, No Chemo 507 ( 4.8)
Surg then Rad, Yes Chemo 109 ( 1.0)
Surg, No rad, Yes Chemo 335 ( 3.2)
No Surg, No Rad, Yes Chemo 2156 ( 20.3)
No Surg, No Rad, No Chemo 3929 ( 37.0)
Other 459 ( 4.3)
Rad, No Surg, Yes Chemo 463 ( 4.4)
Rad, No Surg, No Chemo 1385 ( 13.1)
Rad then Surg, Yes Chemo 0 ( 0.0)
Rad then Surg, No Chemo 8 ( 0.1)
Rad before and after Surg, Yes Chemo 0 ( 0.0)
Rad before and after Surg, No Chemo 3 ( 0.0)
SURGERY_YN (%) No 8199 ( 77.3)
Ukn 99 ( 0.9)
Yes 2309 ( 21.8)
RADIATION_YN (%) No 7963 ( 75.1)
Yes 2575 ( 24.3)
NA 69 ( 0.7)
CHEMO_YN (%) No 7139 ( 67.3)
Yes 3109 ( 29.3)
Ukn 359 ( 3.4)
mets_at_dx (%) Bone 9 ( 0.1)
Brain 0 ( 0.0)
Liver 4 ( 0.0)
Lung 6 ( 0.1)
None/Other/Unk/NA 10588 ( 99.8)
MEDICAID_EXPN_CODE (%) Non-Expansion State 2960 ( 27.9)
Jan 2014 Expansion States 2959 ( 27.9)
Early Expansion States (2010-13) 1508 ( 14.2)
Late Expansion States (> Jan 2014) 1450 ( 13.7)
Suppressed for Ages 0 - 39 1730 ( 16.3)
EXPN_GROUP (%) Exclude 1730 ( 16.3)
Post-Expansion 1544 ( 14.6)
Pre-Expansion 7333 ( 69.1)
preExpMedicare  <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))

    2-sample test for equality of proportions with continuity correction

data:  c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 1.535, df = 1, p-value = 0.2154
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.009741399  0.044483911
sample estimates:
   prop 1    prop 2 
0.4007909 0.3834197 
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>% 
                            filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>% 
                             filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion 
prop.test(c(preExpNoInsurance, postExpNoInsurance), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))

    2-sample test for equality of proportions with continuity correction

data:  c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 12.465, df = 1, p-value = 0.0004147
alternative hypothesis: two.sided
95 percent confidence interval:
 0.009399702 0.024969736
sample estimates:
    prop 1     prop 2 
0.03272876 0.01554404 
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")

level Post-Expansion Pre-Expansion p test
n 144 562
DX_RX_STARTED_DAYS (mean (sd)) 49.87 (39.28) 46.72 (169.07) 0.830

data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")

Kaplan Meier Analysis

All

uni_var(test_var = "All", data_imp = data)
_________________________________________________
   
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

      n  events  median 0.95LCL 0.95UCL 
  10607    2719      NA     158      NA 

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   8499     847    0.915 0.00280        0.910        0.921
   24   7096     543    0.854 0.00365        0.846        0.861
   36   5814     383    0.805 0.00422        0.796        0.813
   48   4740     269    0.764 0.00466        0.755        0.774
   60   3814     200    0.729 0.00506        0.720        0.739
  120    865     425    0.598 0.00754        0.584        0.613



   
## Univariable Cox Proportional Hazard Model for:  All

[1] "Only one level, no Cox model performed"




   
## Unadjusted Kaplan Meier Overall Survival Curve for:  All

Facility Type

uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
   
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

   1730 observations deleted due to missingness 
                                                 n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program       368    135    110      93      NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 1652    585    117     106     140
FACILITY_TYPE_F=Academic/Research Program     6246   1683    147     136      NA
FACILITY_TYPE_F=Integrated Network Ca Program  611    189    158     120      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

1730 observations deleted due to missingness 
                FACILITY_TYPE_F=Community Cancer Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    280      50    0.857  0.0187        0.822        0.895
   24    239      24    0.782  0.0225        0.739        0.827
   36    183      17    0.722  0.0251        0.675        0.773
   48    158       9    0.685  0.0267        0.634        0.739
   60    140       6    0.657  0.0279        0.605        0.714
  120     28      29    0.444  0.0400        0.373        0.530

                FACILITY_TYPE_F=Comprehensive Comm Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1291     208    0.868 0.00851        0.852        0.885
   24   1058     116    0.787 0.01057        0.766        0.808
   36    871      68    0.734 0.01166        0.711        0.757
   48    705      51    0.688 0.01258        0.663        0.713
   60    568      44    0.642 0.01353        0.616        0.669
  120    143      89    0.488 0.01855        0.453        0.525

                FACILITY_TYPE_F=Academic/Research Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   4990     478    0.918 0.00359        0.911        0.925
   24   4142     336    0.853 0.00479        0.844        0.862
   36   3365     263    0.795 0.00564        0.784        0.806
   48   2720     176    0.750 0.00625        0.738        0.763
   60   2169     129    0.712 0.00680        0.699        0.725
  120    458     265    0.570 0.01013        0.550        0.590

                FACILITY_TYPE_F=Integrated Network Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    490      67    0.885  0.0132        0.860        0.911
   24    402      41    0.808  0.0167        0.776        0.841
   36    334      17    0.771  0.0181        0.737        0.808
   48    271      21    0.720  0.0201        0.682        0.761
   60    217      12    0.686  0.0214        0.646        0.730
  120     56      27    0.561  0.0294        0.506        0.621




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_TYPE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

  n= 8877, number of events= 2592 
   (1730 observations deleted due to missingness)

                                                 coef exp(coef) se(coef)      z Pr(>|z|)    
FACILITY_TYPE_FComprehensive Comm Ca Program -0.02469   0.97561  0.09549 -0.259  0.79595    
FACILITY_TYPE_FAcademic/Research Program     -0.30824   0.73474  0.08946 -3.446  0.00057 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.18955   0.82733  0.11269 -1.682  0.09257 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                             exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program    0.9756      1.025    0.8091    1.1764
FACILITY_TYPE_FAcademic/Research Program        0.7347      1.361    0.6166    0.8756
FACILITY_TYPE_FIntegrated Network Ca Program    0.8273      1.209    0.6634    1.0318

Concordance= 0.536  (se = 0.005 )
Rsquare= 0.005   (max possible= 0.993 )
Likelihood ratio test= 40.53  on 3 df,   p=8.231e-09
Wald test            = 42.11  on 3 df,   p=3.796e-09
Score (logrank) test = 42.39  on 3 df,   p=3.316e-09
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_TYPE_F

Facility Location

uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
   
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

   1730 observations deleted due to missingness 
                                          n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England         634    181    125   108.2      NA
FACILITY_LOCATION_F=Middle Atlantic    1960    496    132   115.2      NA
FACILITY_LOCATION_F=South Atlantic     1891    579    144   127.9      NA
FACILITY_LOCATION_F=East North Central 1535    478    138   125.6      NA
FACILITY_LOCATION_F=East South Central  492    159    148   108.9      NA
FACILITY_LOCATION_F=West North Central  570    184    115    92.8      NA
FACILITY_LOCATION_F=West South Central  480    141    130   114.7      NA
FACILITY_LOCATION_F=Mountain            443    113     NA   136.1      NA
FACILITY_LOCATION_F=Pacific             872    261     NA   115.9      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

1730 observations deleted due to missingness 
                FACILITY_LOCATION_F=New England 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    472      60    0.896  0.0127        0.872        0.922
   24    381      38    0.819  0.0167        0.787        0.853
   36    310      25    0.761  0.0191        0.725        0.800
   48    247      18    0.714  0.0210        0.674        0.756
   60    190      12    0.675  0.0227        0.632        0.721
  120     33      26    0.525  0.0340        0.462        0.596

                FACILITY_LOCATION_F=Middle Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1607     138    0.926 0.00610        0.914        0.938
   24   1341     102    0.864 0.00822        0.848        0.880
   36   1058      75    0.812 0.00969        0.793        0.831
   48    798      54    0.765 0.01101        0.744        0.787
   60    597      42    0.721 0.01234        0.697        0.745
  120     91      78    0.535 0.02293        0.492        0.582

                FACILITY_LOCATION_F=South Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1509     173    0.903 0.00702        0.889        0.917
   24   1251     116    0.830 0.00916        0.812        0.848
   36   1046      86    0.770 0.01054        0.750        0.791
   48    893      47    0.733 0.01132        0.712        0.756
   60    743      42    0.697 0.01209        0.673        0.721
  120    202     100    0.561 0.01627        0.530        0.594

                FACILITY_LOCATION_F=East North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1238     161    0.890 0.00818        0.874        0.906
   24   1060      75    0.834 0.00989        0.815        0.854
   36    857      70    0.776 0.01140        0.754        0.799
   48    724      41    0.737 0.01235        0.713        0.762
   60    609      30    0.705 0.01315        0.679        0.731
  120    135      92    0.541 0.01919        0.505        0.580

                FACILITY_LOCATION_F=East South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    395      48    0.897  0.0141        0.870        0.925
   24    330      38    0.808  0.0187        0.772        0.845
   36    280      22    0.752  0.0209        0.712        0.794
   48    220      13    0.714  0.0223        0.672        0.759
   60    167      13    0.669  0.0242        0.623        0.718
  120     45      22    0.534  0.0339        0.471        0.604

                FACILITY_LOCATION_F=West North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    419      69    0.869  0.0147        0.841        0.899
   24    343      31    0.801  0.0179        0.767        0.837
   36    287      20    0.752  0.0199        0.714        0.792
   48    222      25    0.682  0.0225        0.639        0.728
   60    171      12    0.641  0.0241        0.595        0.690
  120     31      25    0.478  0.0358        0.412        0.553

                FACILITY_LOCATION_F=West South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    375      47    0.896  0.0144        0.868        0.924
   24    298      34    0.809  0.0192        0.773        0.848
   36    243      12    0.774  0.0210        0.734        0.816
   48    196      19    0.709  0.0239        0.664        0.758
   60    149      12    0.661  0.0260        0.612        0.714
  120     22      14    0.546  0.0396        0.473        0.629

                FACILITY_LOCATION_F=Mountain 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    342      31    0.926  0.0129        0.901        0.951
   24    273      26    0.849  0.0186        0.813        0.886
   36    213      21    0.780  0.0224        0.737        0.825
   48    183       9    0.745  0.0242        0.699        0.794
   60    155       9    0.707  0.0261        0.658        0.760
  120     40      13    0.623  0.0327        0.562        0.691

                FACILITY_LOCATION_F=Pacific 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    694      76    0.909  0.0100        0.889        0.928
   24    564      57    0.829  0.0136        0.803        0.856
   36    459      34    0.776  0.0155        0.747        0.807
   48    371      31    0.721  0.0173        0.688        0.756
   60    313      19    0.682  0.0185        0.647        0.719
  120     86      40    0.545  0.0250        0.498        0.597




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_LOCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

  n= 8877, number of events= 2592 
   (1730 observations deleted due to missingness)

                                           coef exp(coef)  se(coef)      z Pr(>|z|)  
FACILITY_LOCATION_FMiddle Atlantic    -0.177897  0.837028  0.086852 -2.048   0.0405 *
FACILITY_LOCATION_FSouth Atlantic     -0.082995  0.920356  0.085207 -0.974   0.3300  
FACILITY_LOCATION_FEast North Central -0.067565  0.934667  0.087301 -0.774   0.4390  
FACILITY_LOCATION_FEast South Central -0.004220  0.995789  0.108707 -0.039   0.9690  
FACILITY_LOCATION_FWest North Central  0.123145  1.131048  0.104691  1.176   0.2395  
FACILITY_LOCATION_FWest South Central  0.004044  1.004052  0.112329  0.036   0.9713  
FACILITY_LOCATION_FMountain           -0.184509  0.831513  0.119913 -1.539   0.1239  
FACILITY_LOCATION_FPacific            -0.082724  0.920606  0.096784 -0.855   0.3927  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic       0.8370     1.1947    0.7060    0.9924
FACILITY_LOCATION_FSouth Atlantic        0.9204     1.0865    0.7788    1.0876
FACILITY_LOCATION_FEast North Central    0.9347     1.0699    0.7877    1.1091
FACILITY_LOCATION_FEast South Central    0.9958     1.0042    0.8047    1.2322
FACILITY_LOCATION_FWest North Central    1.1310     0.8841    0.9212    1.3887
FACILITY_LOCATION_FWest South Central    1.0041     0.9960    0.8056    1.2513
FACILITY_LOCATION_FMountain              0.8315     1.2026    0.6574    1.0518
FACILITY_LOCATION_FPacific               0.9206     1.0862    0.7615    1.1129

Concordance= 0.526  (se = 0.006 )
Rsquare= 0.002   (max possible= 0.993 )
Likelihood ratio test= 16.32  on 8 df,   p=0.03808
Wald test            = 16.59  on 8 df,   p=0.03468
Score (logrank) test = 16.65  on 8 df,   p=0.03401
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_LOCATION_F

Facility Geography

uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
   
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

   1730 observations deleted due to missingness 
                                n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 2594    677    132     118      NA
FACILITY_GEOGRAPHY=South     2371    720    144     128      NA
FACILITY_GEOGRAPHY=Midwest   2597    821    132     120      NA
FACILITY_GEOGRAPHY=West      1315    374     NA     136      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

1730 observations deleted due to missingness 
                FACILITY_GEOGRAPHY=Northeast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2079     198    0.919 0.00555        0.908        0.930
   24   1722     140    0.853 0.00742        0.839        0.868
   36   1368     100    0.800 0.00867        0.783        0.817
   48   1045      72    0.753 0.00977        0.734        0.772
   60    787      54    0.710 0.01085        0.689        0.731
  120    124     104    0.534 0.01904        0.498        0.573

                FACILITY_GEOGRAPHY=South 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1884     220    0.901 0.00632        0.889        0.914
   24   1549     150    0.826 0.00828        0.810        0.842
   36   1289      98    0.771 0.00942        0.752        0.789
   48   1089      66    0.729 0.01023        0.709        0.749
   60    892      54    0.690 0.01096        0.669        0.712
  120    224     114    0.558 0.01493        0.530        0.588

                FACILITY_GEOGRAPHY=Midwest 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2052     278    0.887 0.00640        0.874        0.900
   24   1733     144    0.822 0.00789        0.807        0.838
   36   1424     112    0.766 0.00895        0.749        0.784
   48   1166      79    0.721 0.00976        0.702        0.740
   60    947      55    0.684 0.01044        0.664        0.705
  120    211     139    0.527 0.01512        0.498        0.557

                FACILITY_GEOGRAPHY=West 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1036     107    0.914 0.00795        0.899        0.930
   24    837      83    0.836 0.01097        0.815        0.858
   36    672      55    0.778 0.01272        0.753        0.803
   48    554      40    0.729 0.01408        0.702        0.757
   60    468      28    0.690 0.01512        0.661        0.720
  120    126      53    0.568 0.02027        0.530        0.609




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_GEOGRAPHY

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

  n= 8877, number of events= 2592 
   (1730 observations deleted due to missingness)

                             coef exp(coef) se(coef)     z Pr(>|z|)  
FACILITY_GEOGRAPHYSouth   0.06695   1.06924  0.05363 1.248   0.2119  
FACILITY_GEOGRAPHYMidwest 0.11803   1.12528  0.05197 2.271   0.0231 *
FACILITY_GEOGRAPHYWest    0.01889   1.01907  0.06453 0.293   0.7697  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                          exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth       1.069     0.9352    0.9626     1.188
FACILITY_GEOGRAPHYMidwest     1.125     0.8887    1.0163     1.246
FACILITY_GEOGRAPHYWest        1.019     0.9813    0.8980     1.156

Concordance= 0.518  (se = 0.006 )
Rsquare= 0.001   (max possible= 0.993 )
Likelihood ratio test= 5.85  on 3 df,   p=0.1191
Wald test            = 5.86  on 3 df,   p=0.1188
Score (logrank) test = 5.86  on 3 df,   p=0.1186
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_GEOGRAPHY

Age Group

uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
   
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

   5 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
AGE_F=(0,54]   4332    505     NA      NA      NA
AGE_F=(54,64]  2437    520     NA   158.3      NA
AGE_F=(64,74]  2098    670  110.9   103.5     127
AGE_F=(74,100] 1735   1024   44.8    40.4      51

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

5 observations deleted due to missingness 
                AGE_F=(0,54] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3630     153    0.962 0.00300        0.956        0.968
   24   3138     118    0.929 0.00416        0.921        0.937
   36   2676      65    0.909 0.00478        0.900        0.918
   48   2242      50    0.891 0.00533        0.880        0.901
   60   1852      39    0.874 0.00586        0.863        0.886
  120    482      68    0.822 0.00858        0.805        0.839

                AGE_F=(54,64] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1971     146    0.936 0.00513        0.926        0.946
   24   1647      96    0.887 0.00686        0.874        0.901
   36   1363      77    0.843 0.00815        0.828        0.860
   48   1099      74    0.794 0.00952        0.775        0.812
   60    896      33    0.768 0.01020        0.748        0.788
  120    195      86    0.647 0.01554        0.617        0.678

                AGE_F=(64,74] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1640     194    0.901 0.00678        0.888        0.914
   24   1348     130    0.826 0.00886        0.808        0.843
   36   1060      96    0.762 0.01027        0.743        0.783
   48    850      63    0.714 0.01129        0.692        0.737
   60    656      59    0.660 0.01245        0.636        0.685
  120    132     113    0.473 0.01872        0.438        0.511

                AGE_F=(74,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1255     354    0.788  0.0100        0.769        0.808
   24    960     199    0.658  0.0119        0.636        0.682
   36    712     145    0.553  0.0128        0.528        0.579
   48    547      82    0.485  0.0133        0.459        0.511
   60    408      69    0.419  0.0136        0.393        0.446
  120     56     158    0.182  0.0154        0.154        0.215




   
## Univariable Cox Proportional Hazard Model for:  AGE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

  n= 10602, number of events= 2719 
   (5 observations deleted due to missingness)

                 coef exp(coef) se(coef)     z Pr(>|z|)    
AGE_F(54,64]  0.70580   2.02547  0.06250 11.29   <2e-16 ***
AGE_F(64,74]  1.18603   3.27405  0.05901 20.10   <2e-16 ***
AGE_F(74,100] 1.97093   7.17735  0.05466 36.06   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64]      2.025     0.4937     1.792     2.289
AGE_F(64,74]      3.274     0.3054     2.916     3.675
AGE_F(74,100]     7.177     0.1393     6.448     7.989

Concordance= 0.687  (se = 0.006 )
Rsquare= 0.129   (max possible= 0.988 )
Likelihood ratio test= 1468  on 3 df,   p=0
Wald test            = 1443  on 3 df,   p=0
Score (logrank) test = 1777  on 3 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_F

Age Group

uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
   
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

   5 observations deleted due to missingness 
                   n events median 0.95LCL 0.95UCL
AGE_40=(0,40]   1844    142     NA      NA      NA
AGE_40=(40,100] 8758   2577    138     131     150

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

5 observations deleted due to missingness 
                AGE_40=(0,40] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1546      47    0.973 0.00396        0.965        0.980
   24   1338      33    0.950 0.00543        0.940        0.961
   36   1134      20    0.935 0.00633        0.923        0.948
   48    951      12    0.924 0.00698        0.911        0.938
   60    772      11    0.913 0.00775        0.898        0.928
  120    194      16    0.882 0.01093        0.861        0.904

                AGE_40=(40,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6950     800    0.903 0.00326        0.897        0.910
   24   5755     510    0.833 0.00423        0.825        0.842
   36   4677     363    0.777 0.00486        0.768        0.787
   48   3787     257    0.732 0.00535        0.721        0.742
   60   3040     189    0.692 0.00578        0.681        0.704
  120    671     409    0.543 0.00846        0.527        0.560




   
## Univariable Cox Proportional Hazard Model for:  AGE_40

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

  n= 10602, number of events= 2719 
   (5 observations deleted due to missingness)

                  coef exp(coef) se(coef)    z Pr(>|z|)    
AGE_40(40,100] 1.45709   4.29343  0.08622 16.9   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100]     4.293     0.2329     3.626     5.084

Concordance= 0.566  (se = 0.004 )
Rsquare= 0.041   (max possible= 0.988 )
Likelihood ratio test= 448.9  on 1 df,   p=0
Wald test            = 285.6  on 1 df,   p=0
Score (logrank) test = 339.8  on 1 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_40

Gender

uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
   
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                n events median 0.95LCL 0.95UCL
SEX_F=Male   6026   1662    158     139      NA
SEX_F=Female 4581   1057     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                SEX_F=Male 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   4803     522    0.908 0.00385        0.900        0.915
   24   3971     348    0.839 0.00504        0.829        0.848
   36   3262     227    0.788 0.00576        0.776        0.799
   48   2657     151    0.749 0.00630        0.736        0.761
   60   2143     118    0.713 0.00681        0.699        0.726
  120    478     263    0.573 0.01004        0.554        0.593

                SEX_F=Female 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3696     325    0.925 0.00402        0.917        0.933
   24   3125     195    0.873 0.00522        0.863        0.884
   36   2552     156    0.827 0.00613        0.815        0.839
   48   2083     118    0.785 0.00691        0.772        0.799
   60   1671      82    0.752 0.00755        0.737        0.767
  120    387     162    0.631 0.01138        0.609        0.654




   
## Univariable Cox Proportional Hazard Model for:  SEX_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

  n= 10607, number of events= 2719 

                coef exp(coef) se(coef)      z Pr(>|z|)    
SEX_FFemale -0.20798   0.81222  0.03934 -5.286 1.25e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale    0.8122      1.231    0.7519    0.8773

Concordance= 0.525  (se = 0.005 )
Rsquare= 0.003   (max possible= 0.988 )
Likelihood ratio test= 28.33  on 1 df,   p=1.024e-07
Wald test            = 27.94  on 1 df,   p=1.25e-07
Score (logrank) test = 28.04  on 1 df,   p=1.186e-07
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SEX_F

RACE_F

uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
   
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                    n events median 0.95LCL 0.95UCL
RACE_F=White     8006   2110    158     150      NA
RACE_F=Black     1877    488     NA     148      NA
RACE_F=Other/Unk  409     66     NA      NA      NA
RACE_F=Asian      315     55     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                RACE_F=White 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6438     640    0.915 0.00321        0.909        0.922
   24   5377     430    0.851 0.00423        0.843        0.859
   36   4416     301    0.800 0.00488        0.791        0.810
   48   3632     196    0.762 0.00535        0.752        0.773
   60   2935     160    0.726 0.00582        0.715        0.738
  120    651     340    0.589 0.00870        0.572        0.606

                RACE_F=Black 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1476     173    0.902 0.00711        0.888        0.916
   24   1220      90    0.843 0.00893        0.826        0.861
   36   1000      66    0.795 0.01023        0.775        0.815
   48    798      53    0.749 0.01142        0.727        0.772
   60    627      32    0.716 0.01233        0.692        0.740
  120    156      65    0.601 0.01749        0.567        0.636

                RACE_F=Other/Unk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    334      13    0.964 0.00974        0.945        0.984
   24    284      14    0.922 0.01444        0.894        0.951
   36    222       8    0.892 0.01737        0.859        0.927
   48    164      15    0.825 0.02316        0.781        0.872
   60    130       4    0.803 0.02506        0.756        0.854
  120     30      12    0.695 0.03785        0.624        0.773

                RACE_F=Asian 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    251      21    0.929  0.0150        0.900        0.959
   24    215       9    0.894  0.0184        0.859        0.931
   36    176       8    0.859  0.0215        0.818        0.902
   48    146       5    0.832  0.0239        0.787        0.881
   60    122       4    0.809  0.0260        0.759        0.861
  120     28       8    0.716  0.0414        0.639        0.802




   
## Univariable Cox Proportional Hazard Model for:  RACE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

  n= 10607, number of events= 2719 

                    coef exp(coef) se(coef)      z Pr(>|z|)    
RACE_FBlack      0.01734   1.01749  0.05023  0.345 0.729902    
RACE_FOther/Unk -0.46234   0.62981  0.12501 -3.698 0.000217 ***
RACE_FAsian     -0.43079   0.65000  0.13659 -3.154 0.001611 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack        1.0175     0.9828    0.9221    1.1228
RACE_FOther/Unk    0.6298     1.5878    0.4929    0.8047
RACE_FAsian        0.6500     1.5385    0.4973    0.8495

Concordance= 0.515  (se = 0.004 )
Rsquare= 0.003   (max possible= 0.988 )
Likelihood ratio test= 27.24  on 3 df,   p=5.246e-06
Wald test            = 23.69  on 3 df,   p=2.901e-05
Score (logrank) test = 24.09  on 3 df,   p=2.387e-05
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RACE_F

Hispanic

uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
   
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                    n events median 0.95LCL 0.95UCL
HISPANIC=No      9463   2472    158     150      NA
HISPANIC=Yes      633    120     NA      NA      NA
HISPANIC=Unknown  511    127     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                HISPANIC=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   7546     781    0.912 0.00300        0.906        0.918
   24   6287     487    0.850 0.00390        0.843        0.858
   36   5157     349    0.800 0.00450        0.791        0.809
   48   4197     245    0.759 0.00498        0.749        0.769
   60   3380     178    0.724 0.00539        0.714        0.735
  120    769     382    0.592 0.00799        0.577        0.608

                HISPANIC=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    513      41    0.931  0.0105        0.910        0.951
   24    419      32    0.869  0.0143        0.842        0.898
   36    330      14    0.837  0.0162        0.805        0.869
   48    266      10    0.810  0.0179        0.775        0.845
   60    193      10    0.773  0.0204        0.734        0.814
  120     29      13    0.668  0.0355        0.602        0.741

                HISPANIC=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    440      25    0.948  0.0101        0.929        0.968
   24    390      24    0.895  0.0142        0.868        0.923
   36    327      20    0.846  0.0171        0.813        0.881
   48    277      14    0.808  0.0192        0.771        0.847
   60    241      12    0.772  0.0210        0.732        0.814
  120     67      30    0.633  0.0297        0.578        0.694




   
## Univariable Cox Proportional Hazard Model for:  HISPANIC

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

  n= 10607, number of events= 2719 

                    coef exp(coef) se(coef)      z Pr(>|z|)   
HISPANICYes     -0.26404   0.76794  0.09350 -2.824  0.00474 **
HISPANICUnknown -0.20914   0.81128  0.09103 -2.297  0.02159 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes        0.7679      1.302    0.6394    0.9224
HISPANICUnknown    0.8113      1.233    0.6787    0.9697

Concordance= 0.511  (se = 0.003 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 13.55  on 2 df,   p=0.001143
Wald test            = 12.67  on 2 df,   p=0.001771
Score (logrank) test = 12.74  on 2 df,   p=0.001716
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  HISPANIC

Insurance Status

uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
   
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                                n events median 0.95LCL 0.95UCL
INSURANCE_F=Private          5618    800     NA      NA      NA
INSURANCE_F=None              365     82     NA      NA      NA
INSURANCE_F=Medicaid          622    155     NA      NA      NA
INSURANCE_F=Medicare         3580   1581   71.7    66.1    77.8
INSURANCE_F=Other Government  144     33  115.9    99.8      NA
INSURANCE_F=Unknown           278     68     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                INSURANCE_F=Private 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   4691     200    0.962 0.00264        0.957        0.967
   24   4011     178    0.923 0.00380        0.916        0.931
   36   3393     114    0.896 0.00449        0.887        0.905
   48   2822      97    0.868 0.00515        0.858        0.878
   60   2314      64    0.847 0.00567        0.836        0.858
  120    582     126    0.772 0.00855        0.755        0.789

                INSURANCE_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    278      32    0.904  0.0162        0.873        0.936
   24    234      16    0.849  0.0202        0.811        0.890
   36    188      11    0.808  0.0228        0.764        0.853
   48    159      10    0.762  0.0257        0.713        0.814
   60    122       6    0.731  0.0276        0.679        0.787
  120     23       7    0.668  0.0349        0.603        0.740

                INSURANCE_F=Medicaid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    488      70    0.881  0.0134        0.855        0.907
   24    388      38    0.807  0.0168        0.775        0.841
   36    306      18    0.766  0.0186        0.730        0.803
   48    238      11    0.736  0.0199        0.698        0.776
   60    180       6    0.716  0.0209        0.677        0.759
  120     28      12    0.634  0.0302        0.577        0.696

                INSURANCE_F=Medicare 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2700     517    0.848 0.00617        0.836        0.860
   24   2165     294    0.751 0.00763        0.736        0.766
   36   1678     223    0.668 0.00857        0.652        0.685
   48   1317     144    0.607 0.00920        0.589        0.625
   60   1025     116    0.549 0.00976        0.530        0.569
  120    184     258    0.337 0.01302        0.312        0.363

                INSURANCE_F=Other Government 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    119       5    0.962  0.0165        0.931        0.995
   24    101       5    0.921  0.0239        0.876        0.969
   36     78       6    0.860  0.0331        0.797        0.927
   48     60       3    0.822  0.0381        0.751        0.900
   60     52       2    0.794  0.0416        0.717        0.880
  120      9      11    0.439  0.0920        0.291        0.662

                INSURANCE_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    223      23    0.912  0.0176        0.878        0.947
   24    197      12    0.861  0.0218        0.820        0.905
   36    171      11    0.812  0.0252        0.764        0.863
   48    144       4    0.791  0.0266        0.741        0.845
   60    121       6    0.756  0.0290        0.701        0.815
  120     39      11    0.653  0.0398        0.580        0.736




   
## Univariable Cox Proportional Hazard Model for:  INSURANCE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

  n= 10607, number of events= 2719 

                               coef exp(coef) se(coef)      z Pr(>|z|)    
INSURANCE_FNone             0.59109   1.80596  0.11597  5.097 3.45e-07 ***
INSURANCE_FMedicaid         0.74429   2.10496  0.08783  8.474  < 2e-16 ***
INSURANCE_FMedicare         1.34659   3.84428  0.04352 30.945  < 2e-16 ***
INSURANCE_FOther Government 0.59574   1.81438  0.17768  3.353 0.000799 ***
INSURANCE_FUnknown          0.50621   1.65900  0.12634  4.007 6.15e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                            exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone                 1.806     0.5537     1.439     2.267
INSURANCE_FMedicaid             2.105     0.4751     1.772     2.500
INSURANCE_FMedicare             3.844     0.2601     3.530     4.187
INSURANCE_FOther Government     1.814     0.5512     1.281     2.570
INSURANCE_FUnknown              1.659     0.6028     1.295     2.125

Concordance= 0.656  (se = 0.005 )
Rsquare= 0.093   (max possible= 0.988 )
Likelihood ratio test= 1036  on 5 df,   p=0
Wald test            = 978.8  on 5 df,   p=0
Score (logrank) test = 1117  on 5 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  INSURANCE_F

Overall Survival pre/post-ACA expansion

uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
   
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                            n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 144     20     NA    82.8      NA
EXPN_GROUP=Pre-Expansion  562    145    132   125.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                EXPN_GROUP=Post-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    119       5    0.963  0.0163        0.931        0.995
   24     85       9    0.880  0.0303        0.823        0.942
   36     42       4    0.827  0.0386        0.755        0.906
   48     28       1    0.799  0.0467        0.712        0.896
   60     18       0    0.799  0.0467        0.712        0.896

                EXPN_GROUP=Pre-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    498      20    0.963 0.00815        0.947        0.979
   24    457      16    0.931 0.01111        0.909        0.953
   36    394      20    0.888 0.01419        0.860        0.916
   48    322      16    0.849 0.01652        0.818        0.882
   60    253      25    0.778 0.02044        0.739        0.819
  120     51      39    0.586 0.03289        0.525        0.655




   
## Univariable Cox Proportional Hazard Model for:  EXPN_GROUP

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

  n= 706, number of events= 165 

                           coef exp(coef) se(coef)      z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2186    0.8036   0.2458 -0.889    0.374

                        exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion    0.8036      1.244    0.4964     1.301

Concordance= 0.519  (se = 0.016 )
Rsquare= 0.001   (max possible= 0.932 )
Likelihood ratio test= 0.75  on 1 df,   p=0.3855
Wald test            = 0.79  on 1 df,   p=0.3739
Score (logrank) test = 0.79  on 1 df,   p=0.373





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EXPN_GROUP

Education

uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
   
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

   55 observations deleted due to missingness 
                            n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more  1651    477    142     128      NA
EDUCATION_F=13 - 20.9%   2543    731    150     131      NA
EDUCATION_F=7 - 12.9%    3399    895    158     145      NA
EDUCATION_F=Less than 7% 2959    607     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

55 observations deleted due to missingness 
                EDUCATION_F=21% or more 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1304     151    0.903 0.00753        0.888        0.918
   24   1051     107    0.825 0.00997        0.806        0.845
   36    865      61    0.774 0.01127        0.752        0.797
   48    685      56    0.720 0.01262        0.695        0.745
   60    554      30    0.685 0.01350        0.659        0.712
  120    123      63    0.551 0.01977        0.514        0.591

                EDUCATION_F=13 - 20.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2023     230    0.904 0.00602        0.892        0.916
   24   1707     139    0.839 0.00772        0.824        0.854
   36   1392     110    0.782 0.00893        0.764        0.799
   48   1121      72    0.738 0.00979        0.719        0.758
   60    901      49    0.704 0.01051        0.683        0.725
  120    213     117    0.554 0.01580        0.524        0.586

                EDUCATION_F=7 - 12.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2737     283    0.912 0.00501        0.902        0.922
   24   2285     176    0.850 0.00649        0.837        0.863
   36   1881     116    0.804 0.00741        0.790        0.819
   48   1541      85    0.765 0.00817        0.749        0.781
   60   1280      62    0.732 0.00883        0.715        0.750
  120    288     151    0.595 0.01298        0.570        0.621

                EDUCATION_F=Less than 7% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2398     180    0.935 0.00469        0.926        0.944
   24   2024     120    0.886 0.00624        0.874        0.898
   36   1652      94    0.842 0.00741        0.827        0.856
   48   1370      56    0.811 0.00820        0.795        0.827
   60   1061      57    0.774 0.00919        0.756        0.792
  120    236      93    0.671 0.01339        0.645        0.698




   
## Univariable Cox Proportional Hazard Model for:  EDUCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

  n= 10552, number of events= 2710 
   (55 observations deleted due to missingness)

                            coef exp(coef) se(coef)      z Pr(>|z|)    
EDUCATION_F13 - 20.9%   -0.04154   0.95931  0.05886 -0.706  0.48039    
EDUCATION_F7 - 12.9%    -0.15047   0.86030  0.05670 -2.654  0.00796 ** 
EDUCATION_FLess than 7% -0.38919   0.67760  0.06119 -6.360 2.01e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9%      0.9593      1.042    0.8548    1.0766
EDUCATION_F7 - 12.9%       0.8603      1.162    0.7698    0.9614
EDUCATION_FLess than 7%    0.6776      1.476    0.6010    0.7639

Concordance= 0.539  (se = 0.006 )
Rsquare= 0.005   (max possible= 0.988 )
Likelihood ratio test= 55.98  on 3 df,   p=4.232e-12
Wald test            = 54.04  on 3 df,   p=1.098e-11
Score (logrank) test = 54.51  on 3 df,   p=8.718e-12
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EDUCATION_F

Urban/Rural

uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
   
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

   302 observations deleted due to missingness 
               n events median 0.95LCL 0.95UCL
U_R_F=Metro 9027   2236     NA   158.3      NA
U_R_F=Urban 1145    352    155   127.9      NA
U_R_F=Rural  133     45    118    98.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

302 observations deleted due to missingness 
                U_R_F=Metro 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   7258     693    0.918 0.00298        0.912        0.924
   24   6068     435    0.860 0.00388        0.853        0.868
   36   4960     317    0.812 0.00451        0.804        0.821
   48   4035     232    0.771 0.00502        0.762        0.781
   60   3226     169    0.736 0.00547        0.726        0.747
  120    718     348    0.606 0.00828        0.590        0.622

                U_R_F=Urban 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    906     110    0.899 0.00914        0.881        0.917
   24    760      79    0.818 0.01204        0.795        0.842
   36    636      48    0.764 0.01356        0.738        0.791
   48    532      27    0.729 0.01449        0.701        0.758
   60    445      25    0.693 0.01547        0.663        0.724
  120    116      55    0.566 0.02067        0.527        0.608

                U_R_F=Rural 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    104      17    0.867  0.0301        0.810        0.928
   24     85      11    0.772  0.0380        0.701        0.850
   36     75       6    0.717  0.0415        0.640        0.803
   48     63       2    0.697  0.0427        0.618        0.786
   60     53       1    0.685  0.0436        0.604        0.776
  120     11       8    0.497  0.0709        0.375        0.657




   
## Univariable Cox Proportional Hazard Model for:  U_R_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

  n= 10305, number of events= 2633 
   (302 observations deleted due to missingness)

              coef exp(coef) se(coef)     z Pr(>|z|)    
U_R_FUrban 0.19141   1.21096  0.05736 3.337 0.000847 ***
U_R_FRural 0.30714   1.35953  0.15057 2.040 0.041364 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

           exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban     1.211     0.8258     1.082     1.355
U_R_FRural     1.360     0.7355     1.012     1.826

Concordance= 0.515  (se = 0.003 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 13.87  on 2 df,   p=0.0009722
Wald test            = 14.63  on 2 df,   p=0.0006656
Score (logrank) test = 14.69  on 2 df,   p=0.0006453
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  U_R_F

Class (treatment at performing facility)

uni_var(test_var = "CLASS_OF_CASE_F", data_imp = data)
_________________________________________________
   
## CLASS_OF_CASE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                                   n events median 0.95LCL 0.95UCL
CLASS_OF_CASE_F=Other_Facility   580    110    132     107      NA
CLASS_OF_CASE_F=All_Part_Prim  10027   2609     NA     158      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                CLASS_OF_CASE_F=Other_Facility 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    342      37    0.916  0.0133        0.891        0.943
   24    272      20    0.858  0.0177        0.824        0.894
   36    217      20    0.791  0.0217        0.750        0.835
   48    165       8    0.759  0.0237        0.714        0.807
   60    126       6    0.728  0.0260        0.678        0.780
  120     22      17    0.563  0.0424        0.486        0.653

                CLASS_OF_CASE_F=All_Part_Prim 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   8157     810    0.915 0.00286        0.909        0.921
   24   6824     523    0.853 0.00373        0.846        0.861
   36   5597     363    0.805 0.00430        0.797        0.813
   48   4575     261    0.765 0.00476        0.755        0.774
   60   3688     194    0.730 0.00516        0.720        0.740
  120    843     408    0.599 0.00766        0.584        0.614




   
## Univariable Cox Proportional Hazard Model for:  CLASS_OF_CASE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

  n= 10607, number of events= 2719 

                                 coef exp(coef) se(coef)      z Pr(>|z|)
CLASS_OF_CASE_FAll_Part_Prim -0.06930   0.93305  0.09738 -0.712    0.477

                             exp(coef) exp(-coef) lower .95 upper .95
CLASS_OF_CASE_FAll_Part_Prim     0.933      1.072    0.7709     1.129

Concordance= 0.501  (se = 0.002 )
Rsquare= 0   (max possible= 0.988 )
Likelihood ratio test= 0.5  on 1 df,   p=0.4813
Wald test            = 0.51  on 1 df,   p=0.4767
Score (logrank) test = 0.51  on 1 df,   p=0.4766
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CLASS_OF_CASE_F

Year

uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
   
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                          n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004  656    250     NA   141.7      NA
YEAR_OF_DIAGNOSIS=2005  746    289  150.1   139.0      NA
YEAR_OF_DIAGNOSIS=2006  727    236     NA      NA      NA
YEAR_OF_DIAGNOSIS=2007  768    254     NA      NA      NA
YEAR_OF_DIAGNOSIS=2008  804    247     NA   115.5      NA
YEAR_OF_DIAGNOSIS=2009  986    279     NA   104.8      NA
YEAR_OF_DIAGNOSIS=2010  937    246     NA    93.9      NA
YEAR_OF_DIAGNOSIS=2011  873    206     NA      NA      NA
YEAR_OF_DIAGNOSIS=2012  894    201     NA    69.6      NA
YEAR_OF_DIAGNOSIS=2013 1004    211   59.6      NA      NA
YEAR_OF_DIAGNOSIS=2014 1064    162     NA    46.3      NA
YEAR_OF_DIAGNOSIS=2015 1148    138     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                YEAR_OF_DIAGNOSIS=2004 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    560      52    0.918  0.0109        0.897        0.940
   24    508      29    0.869  0.0136        0.843        0.896
   36    465      35    0.809  0.0160        0.778        0.841
   48    432      29    0.758  0.0176        0.724        0.793
   60    399      24    0.715  0.0186        0.680        0.753
  120    237      61    0.588  0.0214        0.548        0.632

                YEAR_OF_DIAGNOSIS=2005 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    615      70    0.902  0.0111        0.881        0.924
   24    543      47    0.831  0.0143        0.804        0.860
   36    508      33    0.781  0.0159        0.750        0.813
   48    476      25    0.742  0.0169        0.710        0.776
   60    443      23    0.706  0.0177        0.672        0.741
  120    266      69    0.581  0.0200        0.543        0.622

                YEAR_OF_DIAGNOSIS=2006 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    607      68    0.902  0.0113        0.881        0.925
   24    541      38    0.844  0.0139        0.817        0.872
   36    502      27    0.802  0.0155        0.772        0.833
   48    478      18    0.773  0.0163        0.741        0.805
   60    447      20    0.740  0.0172        0.707        0.774
  120    256      57    0.633  0.0197        0.596        0.673

                YEAR_OF_DIAGNOSIS=2007 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    645      80    0.893  0.0113        0.871        0.916
   24    564      54    0.817  0.0143        0.789        0.845
   36    528      20    0.787  0.0153        0.758        0.818
   48    492      22    0.754  0.0162        0.723        0.786
   60    447      18    0.726  0.0169        0.693        0.759
  120    106      58    0.607  0.0206        0.568        0.648

                YEAR_OF_DIAGNOSIS=2008 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    667      60    0.921  0.0098        0.902        0.940
   24    594      47    0.854  0.0130        0.829        0.880
   36    533      44    0.790  0.0152        0.761        0.821
   48    488      18    0.763  0.0160        0.732        0.795
   60    436      20    0.731  0.0169        0.698        0.765

                YEAR_OF_DIAGNOSIS=2009 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    815      76    0.919  0.0089        0.902        0.937
   24    749      49    0.863  0.0114        0.841        0.886
   36    672      38    0.818  0.0129        0.793        0.844
   48    611      36    0.773  0.0142        0.746        0.802
   60    560      19    0.749  0.0148        0.720        0.778

                YEAR_OF_DIAGNOSIS=2010 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    786      66    0.926 0.00879        0.909        0.943
   24    697      47    0.869 0.01155        0.846        0.892
   36    645      28    0.833 0.01287        0.808        0.859
   48    578      40    0.780 0.01451        0.753        0.809
   60    504      25    0.745 0.01548        0.715        0.776

                YEAR_OF_DIAGNOSIS=2011 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    729      57    0.931  0.0088        0.914        0.949
   24    641      45    0.872  0.0119        0.849        0.895
   36    581      34    0.825  0.0137        0.798        0.852
   48    516      29    0.782  0.0151        0.753        0.812
   60    407      25    0.741  0.0164        0.709        0.774

                YEAR_OF_DIAGNOSIS=2012 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    712      66    0.920 0.00943        0.902        0.939
   24    619      46    0.858 0.01248        0.834        0.883
   36    532      45    0.794 0.01479        0.765        0.823
   48    436      20    0.762 0.01580        0.732        0.794
   60    171      19    0.716 0.01826        0.681        0.753

                YEAR_OF_DIAGNOSIS=2013 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    775      90    0.904 0.00963        0.886        0.923
   24    652      48    0.845 0.01223        0.821        0.869
   36    547      43    0.787 0.01425        0.759        0.815
   48    233      23    0.746 0.01598        0.715        0.778

                YEAR_OF_DIAGNOSIS=2014 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    798      81    0.917 0.00887        0.900        0.934
   24    656      48    0.858 0.01168        0.836        0.881
   36    301      24    0.821 0.01345        0.795        0.848

                YEAR_OF_DIAGNOSIS=2015 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    790      81    0.920 0.00857        0.903        0.937
   24    332      45    0.851 0.01293        0.826        0.877




   
## Univariable Cox Proportional Hazard Model for:  YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

  n= 10607, number of events= 2719 

                           coef exp(coef)  se(coef)      z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005  0.065581  1.067779  0.086707  0.756    0.449
YEAR_OF_DIAGNOSIS2006 -0.101224  0.903730  0.091413 -1.107    0.268
YEAR_OF_DIAGNOSIS2007 -0.010069  0.989981  0.090137 -0.112    0.911
YEAR_OF_DIAGNOSIS2008  0.002238  1.002241  0.091039  0.025    0.980
YEAR_OF_DIAGNOSIS2009 -0.046739  0.954336  0.088718 -0.527    0.598
YEAR_OF_DIAGNOSIS2010 -0.053876  0.947549  0.091670 -0.588    0.557
YEAR_OF_DIAGNOSIS2011 -0.075474  0.927304  0.096134 -0.785    0.432
YEAR_OF_DIAGNOSIS2012  0.020951  1.021172  0.097068  0.216    0.829
YEAR_OF_DIAGNOSIS2013  0.095314  1.100004  0.096229  0.990    0.322
YEAR_OF_DIAGNOSIS2014 -0.055801  0.945728  0.103902 -0.537    0.591
YEAR_OF_DIAGNOSIS2015 -0.004014  0.995994  0.109715 -0.037    0.971
YEAR_OF_DIAGNOSIS2016        NA        NA  0.000000     NA       NA

                      exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005    1.0678     0.9365    0.9009     1.266
YEAR_OF_DIAGNOSIS2006    0.9037     1.1065    0.7555     1.081
YEAR_OF_DIAGNOSIS2007    0.9900     1.0101    0.8297     1.181
YEAR_OF_DIAGNOSIS2008    1.0022     0.9978    0.8385     1.198
YEAR_OF_DIAGNOSIS2009    0.9543     1.0478    0.8020     1.136
YEAR_OF_DIAGNOSIS2010    0.9475     1.0554    0.7917     1.134
YEAR_OF_DIAGNOSIS2011    0.9273     1.0784    0.7681     1.120
YEAR_OF_DIAGNOSIS2012    1.0212     0.9793    0.8443     1.235
YEAR_OF_DIAGNOSIS2013    1.1000     0.9091    0.9109     1.328
YEAR_OF_DIAGNOSIS2014    0.9457     1.0574    0.7715     1.159
YEAR_OF_DIAGNOSIS2015    0.9960     1.0040    0.8033     1.235
YEAR_OF_DIAGNOSIS2016        NA         NA        NA        NA

Concordance= 0.514  (se = 0.006 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 8.15  on 11 df,   p=0.6995
Wald test            = 8.2  on 11 df,   p=0.6949
Score (logrank) test = 8.21  on 11 df,   p=0.694
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.

Primary Site

uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
   
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                                                             n events median 0.95LCL 0.95UCL
SITE_TEXT=C44.0 Skin of lip, NOS                            38      8     NA      NA      NA
SITE_TEXT=C44.1 Eyelid                                      31      9     NA   96.79      NA
SITE_TEXT=C44.2 External ear                                51     11     NA   89.46      NA
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face  721    114     NA      NA      NA
SITE_TEXT=C44.4 Skin of scalp and neck                     416     71     NA      NA      NA
SITE_TEXT=C44.5 Skin of trunk                             1762    352     NA      NA      NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder            866    196     NA      NA      NA
SITE_TEXT=C44.7 Skin of lower limb and hip                1210    296     NA  150.05      NA
SITE_TEXT=C44.8 Overlapping lesion of skin                 820    264 135.52  103.13      NA
SITE_TEXT=C44.9 Skin, NOS                                 4677   1393 132.34  124.12      NA
SITE_TEXT=C50.0 Nipple                                       1      1   6.05      NA      NA
SITE_TEXT=C51.9 Vulva, NOS                                   6      2     NA   84.47      NA
SITE_TEXT=C52.9 Vagina, NOS                                  2      2  32.03    3.25      NA
SITE_TEXT=C60.0 Prepuce                                      2      0     NA      NA      NA
SITE_TEXT=C60.9 Penis                                        4      0     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                SITE_TEXT=C44.0 Skin of lip, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     32       1    0.974  0.0260        0.924        1.000
   24     21       4    0.838  0.0669        0.717        0.980
   36     17       2    0.752  0.0833        0.605        0.935
   48     15       0    0.752  0.0833        0.605        0.935
   60      9       1    0.694  0.0949        0.531        0.908
  120      4       0    0.694  0.0949        0.531        0.908

                SITE_TEXT=C44.1 Eyelid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       1    0.968  0.0317        0.908        1.000
   24     23       3    0.864  0.0633        0.749        0.997
   36     20       0    0.864  0.0633        0.749        0.997
   48     19       0    0.864  0.0633        0.749        0.997
   60     12       3    0.711  0.0964        0.545        0.928
  120      4       2    0.533  0.1307        0.330        0.862

                SITE_TEXT=C44.2 External ear 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     43       2    0.957  0.0296        0.901        1.000
   24     38       0    0.957  0.0296        0.901        1.000
   36     32       2    0.905  0.0457        0.819        0.999
   48     23       4    0.787  0.0679        0.665        0.932
   60     18       0    0.787  0.0679        0.665        0.932
  120      4       3    0.517  0.1440        0.299        0.892

                SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    621      25    0.963  0.0072        0.949        0.978
   24    527      21    0.929  0.0102        0.909        0.949
   36    460      14    0.903  0.0120        0.880        0.927
   48    369      15    0.871  0.0142        0.843        0.899
   60    312      11    0.843  0.0160        0.812        0.875
  120     73      24    0.739  0.0257        0.690        0.791

                SITE_TEXT=C44.4 Skin of scalp and neck 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    346      21    0.947  0.0113        0.925        0.969
   24    307      12    0.914  0.0144        0.886        0.942
   36    258      10    0.882  0.0171        0.849        0.916
   48    220       3    0.871  0.0181        0.836        0.907
   60    194       6    0.846  0.0201        0.808        0.887
  120     55      17    0.736  0.0318        0.676        0.801

                SITE_TEXT=C44.5 Skin of trunk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1421     113    0.931 0.00626        0.919        0.944
   24   1217      55    0.893 0.00784        0.878        0.908
   36   1029      48    0.856 0.00918        0.838        0.874
   48    893      28    0.831 0.01003        0.812        0.851
   60    729      36    0.795 0.01123        0.774        0.818
  120    181      65    0.686 0.01663        0.654        0.719

                SITE_TEXT=C44.6 Skin of upper limb and shoulder 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    706      58    0.928 0.00912        0.910        0.946
   24    597      37    0.877 0.01189        0.854        0.900
   36    498      26    0.836 0.01375        0.810        0.864
   48    410      21    0.798 0.01544        0.768        0.829
   60    344      12    0.773 0.01655        0.741        0.806
  120     82      37    0.648 0.02454        0.602        0.698

                SITE_TEXT=C44.7 Skin of lower limb and hip 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    988      82    0.928 0.00767        0.913        0.943
   24    828      72    0.857 0.01070        0.837        0.879
   36    703      38    0.816 0.01210        0.793        0.840
   48    577      29    0.779 0.01334        0.754        0.806
   60    466      20    0.750 0.01439        0.722        0.778
  120    105      50    0.606 0.02326        0.562        0.653

                SITE_TEXT=C44.8 Overlapping lesion of skin 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    650      80    0.896  0.0110        0.874        0.918
   24    539      59    0.811  0.0145        0.783        0.840
   36    446      36    0.753  0.0164        0.722        0.786
   48    360      25    0.709  0.0177        0.675        0.744
   60    280      21    0.664  0.0191        0.627        0.702
  120     52      39    0.506  0.0280        0.454        0.564

                SITE_TEXT=C44.9 Skin, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3652     462    0.895 0.00461        0.886        0.905
   24   2990     279    0.823 0.00594        0.812        0.835
   36   2342     207    0.762 0.00686        0.749        0.775
   48   1845     144    0.711 0.00760        0.696        0.726
   60   1443      90    0.673 0.00819        0.657        0.689
  120    305     186    0.532 0.01204        0.509        0.556

                SITE_TEXT=C50.0 Nipple 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                SITE_TEXT=C51.9 Vulva, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       0      1.0   0.000        1.000            1
   24      4       1      0.8   0.179        0.516            1
   36      4       0      0.8   0.179        0.516            1
   48      4       0      0.8   0.179        0.516            1
   60      4       0      0.8   0.179        0.516            1

                SITE_TEXT=C52.9 Vagina, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       1      0.5   0.354        0.125            1
   24      1       0      0.5   0.354        0.125            1
   36      1       0      0.5   0.354        0.125            1
   48      1       0      0.5   0.354        0.125            1
   60      1       0      0.5   0.354        0.125            1

                SITE_TEXT=C60.0 Prepuce 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      1       0        1       0            1            1

                SITE_TEXT=C60.9 Penis 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      1       0        1       0            1            1




   
## Univariable Cox Proportional Hazard Model for:  SITE_TEXT
Loglik converged before variable  43,44,45,46,47,48,49,50,51,52,53,58,59,60,64 ; beta may be infinite. X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 54 55 56 57 61 62 63 65 66 67 68 69 70 71 72 73
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

  n= 10607, number of events= 2719 

                                                               coef  exp(coef)   se(coef)  z Pr(>|z|)
SITE_TEXTC00.1 External Lip: Lower NOS                           NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.2 External Lip: NOS                                 NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.3 Lip: Upper Mucosa                                 NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.4 Lip: Lower Mucosa                                 NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.5 Lip: Mucosa NOS                                   NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.6 Lip: Commissure                                   NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.8 Lip: Overlapping                                  NA         NA  0.000e+00 NA       NA
SITE_TEXTC00.9 Lip NOS                                           NA         NA  0.000e+00 NA       NA
SITE_TEXTC01.9 Tongue: Base NOS                                  NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.0 Tongue: Dorsal NOS                                NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.1 Tongue: Border, Tip                               NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.2 Tongue: Ventral NOS                               NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.3 Tongue: Anterior NOS                              NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.4 Lingual Tonsil                                    NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.8 Tongue: Overlapping                               NA         NA  0.000e+00 NA       NA
SITE_TEXTC02.9 Tongue: NOS                                       NA         NA  0.000e+00 NA       NA
SITE_TEXTC03.0 Gum: Upper                                        NA         NA  0.000e+00 NA       NA
SITE_TEXTC03.1 Gum: Lower                                        NA         NA  0.000e+00 NA       NA
SITE_TEXTC03.9 Gum NOS                                           NA         NA  0.000e+00 NA       NA
SITE_TEXTC04.0 Mouth: Anterior Floor                             NA         NA  0.000e+00 NA       NA
SITE_TEXTC04.1 Mouth: Lateral Floor                              NA         NA  0.000e+00 NA       NA
SITE_TEXTC04.9 Floor of Mouth NOS                                NA         NA  0.000e+00 NA       NA
SITE_TEXTC05.0 Hard Palate                                       NA         NA  0.000e+00 NA       NA
SITE_TEXTC05.1 Soft Palate NOS                                   NA         NA  0.000e+00 NA       NA
SITE_TEXTC05.2 Uvula                                             NA         NA  0.000e+00 NA       NA
SITE_TEXTC05.8 Palate: Overlapping                               NA         NA  0.000e+00 NA       NA
SITE_TEXTC05.9 Palate NOS                                        NA         NA  0.000e+00 NA       NA
SITE_TEXTC06.0 Cheek Mucosa                                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC06.1 Mouth: Vestibule                                  NA         NA  0.000e+00 NA       NA
SITE_TEXTC06.2 Retromolar Area                                   NA         NA  0.000e+00 NA       NA
SITE_TEXTC06.8 Mouth: Other Overlapping                          NA         NA  0.000e+00 NA       NA
SITE_TEXTC06.9 Mouth NOS                                         NA         NA  0.000e+00 NA       NA
SITE_TEXTC07.9 Parotid Gland                                     NA         NA  0.000e+00 NA       NA
SITE_TEXTC09.8 Tonsil: Overlapping                               NA         NA  0.000e+00 NA       NA
SITE_TEXTC09.9 Tonsil NOS                                        NA         NA  0.000e+00 NA       NA
SITE_TEXTC11.1 Nasopharynx: Poster Wall                          NA         NA  0.000e+00 NA       NA
SITE_TEXTC14.2 Waldeyer Ring                                     NA         NA  0.000e+00 NA       NA
SITE_TEXTC30.0 Nasal Cavity                                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC37.9 Thymus                                            NA         NA  0.000e+00 NA       NA
SITE_TEXTC42.0 Blood                                             NA         NA  0.000e+00 NA       NA
SITE_TEXTC42.2 Spleen                                            NA         NA  0.000e+00 NA       NA
SITE_TEXTC42.4 Hematopoietic NOS                                 NA         NA  0.000e+00 NA       NA
SITE_TEXTC44.0 Skin of lip, NOS                           1.078e+01  4.811e+04  1.804e+05  0        1
SITE_TEXTC44.1 Eyelid                                     1.085e+01  5.134e+04  1.804e+05  0        1
SITE_TEXTC44.2 External ear                               1.066e+01  4.275e+04  1.804e+05  0        1
SITE_TEXTC44.3 Skin of ear and unspecified parts of face  1.030e+01  2.983e+04  1.804e+05  0        1
SITE_TEXTC44.4 Skin of scalp and neck                     1.035e+01  3.122e+04  1.804e+05  0        1
SITE_TEXTC44.5 Skin of trunk                              1.058e+01  3.940e+04  1.804e+05  0        1
SITE_TEXTC44.6 Skin of upper limb and shoulder            1.072e+01  4.534e+04  1.804e+05  0        1
SITE_TEXTC44.7 Skin of lower limb and hip                 1.081e+01  4.959e+04  1.804e+05  0        1
SITE_TEXTC44.8 Overlapping lesion of skin                 1.115e+01  6.970e+04  1.804e+05  0        1
SITE_TEXTC44.9 Skin, NOS                                  1.111e+01  6.708e+04  1.804e+05  0        1
SITE_TEXTC50.0 Nipple                                     1.400e+01  1.204e+06  1.804e+05  0        1
SITE_TEXTC51.0 Labium majus                                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC51.1 Labium minus                                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC51.2 Clitoris                                          NA         NA  0.000e+00 NA       NA
SITE_TEXTC51.8 Overlapping lesion of vulva                       NA         NA  0.000e+00 NA       NA
SITE_TEXTC51.9 Vulva, NOS                                 1.097e+01  5.831e+04  1.804e+05  0        1
SITE_TEXTC52.9 Vagina, NOS                                1.266e+01  3.150e+05  1.804e+05  0        1
SITE_TEXTC60.0 Prepuce                                   -1.380e+00  2.517e-01  1.804e+05  0        1
SITE_TEXTC60.1 Glans penis                                       NA         NA  0.000e+00 NA       NA
SITE_TEXTC60.2 Body of penis                                     NA         NA  0.000e+00 NA       NA
SITE_TEXTC60.8 Overlapping lesion of penis                       NA         NA  0.000e+00 NA       NA
SITE_TEXTC60.9 Penis                                     -1.384e+00  2.506e-01  1.804e+05  0        1
SITE_TEXTC63.2 Scrotum, NOS                                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck                         NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.1 Intrathoracic Lymph Nodes                         NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.2 Intra-abdominal LymphNodes                        NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.3 Lymph Nodes of axilla or arm                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.4 Lymph Nodes: Leg                                  NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.5 Pelvic Lymph Nodes                                NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.8 Lymph Nodes: multiple region                      NA         NA  0.000e+00 NA       NA
SITE_TEXTC77.9 Lymph Node NOS                                    NA         NA  0.000e+00 NA       NA

                                                         exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC00.1 External Lip: Lower NOS                          NA         NA        NA        NA
SITE_TEXTC00.2 External Lip: NOS                                NA         NA        NA        NA
SITE_TEXTC00.3 Lip: Upper Mucosa                                NA         NA        NA        NA
SITE_TEXTC00.4 Lip: Lower Mucosa                                NA         NA        NA        NA
SITE_TEXTC00.5 Lip: Mucosa NOS                                  NA         NA        NA        NA
SITE_TEXTC00.6 Lip: Commissure                                  NA         NA        NA        NA
SITE_TEXTC00.8 Lip: Overlapping                                 NA         NA        NA        NA
SITE_TEXTC00.9 Lip NOS                                          NA         NA        NA        NA
SITE_TEXTC01.9 Tongue: Base NOS                                 NA         NA        NA        NA
SITE_TEXTC02.0 Tongue: Dorsal NOS                               NA         NA        NA        NA
SITE_TEXTC02.1 Tongue: Border, Tip                              NA         NA        NA        NA
SITE_TEXTC02.2 Tongue: Ventral NOS                              NA         NA        NA        NA
SITE_TEXTC02.3 Tongue: Anterior NOS                             NA         NA        NA        NA
SITE_TEXTC02.4 Lingual Tonsil                                   NA         NA        NA        NA
SITE_TEXTC02.8 Tongue: Overlapping                              NA         NA        NA        NA
SITE_TEXTC02.9 Tongue: NOS                                      NA         NA        NA        NA
SITE_TEXTC03.0 Gum: Upper                                       NA         NA        NA        NA
SITE_TEXTC03.1 Gum: Lower                                       NA         NA        NA        NA
SITE_TEXTC03.9 Gum NOS                                          NA         NA        NA        NA
SITE_TEXTC04.0 Mouth: Anterior Floor                            NA         NA        NA        NA
SITE_TEXTC04.1 Mouth: Lateral Floor                             NA         NA        NA        NA
SITE_TEXTC04.9 Floor of Mouth NOS                               NA         NA        NA        NA
SITE_TEXTC05.0 Hard Palate                                      NA         NA        NA        NA
SITE_TEXTC05.1 Soft Palate NOS                                  NA         NA        NA        NA
SITE_TEXTC05.2 Uvula                                            NA         NA        NA        NA
SITE_TEXTC05.8 Palate: Overlapping                              NA         NA        NA        NA
SITE_TEXTC05.9 Palate NOS                                       NA         NA        NA        NA
SITE_TEXTC06.0 Cheek Mucosa                                     NA         NA        NA        NA
SITE_TEXTC06.1 Mouth: Vestibule                                 NA         NA        NA        NA
SITE_TEXTC06.2 Retromolar Area                                  NA         NA        NA        NA
SITE_TEXTC06.8 Mouth: Other Overlapping                         NA         NA        NA        NA
SITE_TEXTC06.9 Mouth NOS                                        NA         NA        NA        NA
SITE_TEXTC07.9 Parotid Gland                                    NA         NA        NA        NA
SITE_TEXTC09.8 Tonsil: Overlapping                              NA         NA        NA        NA
SITE_TEXTC09.9 Tonsil NOS                                       NA         NA        NA        NA
SITE_TEXTC11.1 Nasopharynx: Poster Wall                         NA         NA        NA        NA
SITE_TEXTC14.2 Waldeyer Ring                                    NA         NA        NA        NA
SITE_TEXTC30.0 Nasal Cavity                                     NA         NA        NA        NA
SITE_TEXTC37.9 Thymus                                           NA         NA        NA        NA
SITE_TEXTC42.0 Blood                                            NA         NA        NA        NA
SITE_TEXTC42.2 Spleen                                           NA         NA        NA        NA
SITE_TEXTC42.4 Hematopoietic NOS                                NA         NA        NA        NA
SITE_TEXTC44.0 Skin of lip, NOS                          4.811e+04  2.078e-05         0       Inf
SITE_TEXTC44.1 Eyelid                                    5.134e+04  1.948e-05         0       Inf
SITE_TEXTC44.2 External ear                              4.275e+04  2.339e-05         0       Inf
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 2.983e+04  3.352e-05         0       Inf
SITE_TEXTC44.4 Skin of scalp and neck                    3.122e+04  3.203e-05         0       Inf
SITE_TEXTC44.5 Skin of trunk                             3.940e+04  2.538e-05         0       Inf
SITE_TEXTC44.6 Skin of upper limb and shoulder           4.534e+04  2.206e-05         0       Inf
SITE_TEXTC44.7 Skin of lower limb and hip                4.959e+04  2.017e-05         0       Inf
SITE_TEXTC44.8 Overlapping lesion of skin                6.970e+04  1.435e-05         0       Inf
SITE_TEXTC44.9 Skin, NOS                                 6.708e+04  1.491e-05         0       Inf
SITE_TEXTC50.0 Nipple                                    1.204e+06  8.308e-07         0       Inf
SITE_TEXTC51.0 Labium majus                                     NA         NA        NA        NA
SITE_TEXTC51.1 Labium minus                                     NA         NA        NA        NA
SITE_TEXTC51.2 Clitoris                                         NA         NA        NA        NA
SITE_TEXTC51.8 Overlapping lesion of vulva                      NA         NA        NA        NA
SITE_TEXTC51.9 Vulva, NOS                                5.831e+04  1.715e-05         0       Inf
SITE_TEXTC52.9 Vagina, NOS                               3.150e+05  3.175e-06         0       Inf
SITE_TEXTC60.0 Prepuce                                   2.517e-01  3.973e+00         0       Inf
SITE_TEXTC60.1 Glans penis                                      NA         NA        NA        NA
SITE_TEXTC60.2 Body of penis                                    NA         NA        NA        NA
SITE_TEXTC60.8 Overlapping lesion of penis                      NA         NA        NA        NA
SITE_TEXTC60.9 Penis                                     2.506e-01  3.990e+00         0       Inf
SITE_TEXTC63.2 Scrotum, NOS                                     NA         NA        NA        NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck                        NA         NA        NA        NA
SITE_TEXTC77.1 Intrathoracic Lymph Nodes                        NA         NA        NA        NA
SITE_TEXTC77.2 Intra-abdominal LymphNodes                       NA         NA        NA        NA
SITE_TEXTC77.3 Lymph Nodes of axilla or arm                     NA         NA        NA        NA
SITE_TEXTC77.4 Lymph Nodes: Leg                                 NA         NA        NA        NA
SITE_TEXTC77.5 Pelvic Lymph Nodes                               NA         NA        NA        NA
SITE_TEXTC77.8 Lymph Nodes: multiple region                     NA         NA        NA        NA
SITE_TEXTC77.9 Lymph Node NOS                                   NA         NA        NA        NA

Concordance= 0.574  (se = 0.006 )
Rsquare= 0.02   (max possible= 0.988 )
Likelihood ratio test= 210.7  on 15 df,   p=0
Wald test            = 16.36  on 15 df,   p=0.3588
Score (logrank) test = 220  on 15 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 59 rows containing missing values (geom_errorbar).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 15.

Histology

#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)

Grade

#uni_var(test_var = "GRADE_F", data_imp = data)

Clinical T Stage

uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
   
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

   260 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 4716   1363     NA      NA      NA
TNM_CLIN_T=c1  1675    130     NA      NA      NA
TNM_CLIN_T=c1A  248     15     NA      NA      NA
TNM_CLIN_T=c1B  118     12     NA      NA      NA
TNM_CLIN_T=c2   810    163     NA   109.7      NA
TNM_CLIN_T=c2A   82      7     NA      NA      NA
TNM_CLIN_T=c2B  112     19     NA      NA      NA
TNM_CLIN_T=c3   399    160   59.4    50.8    95.0
TNM_CLIN_T=c4   438    216   43.9    37.4    55.5
TNM_CLIN_T=cX  1749    585  155.1   145.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

260 observations deleted due to missingness 
                TNM_CLIN_T=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3700     529    0.882 0.00483        0.873        0.891
   24   3089     267    0.815 0.00595        0.804        0.827
   36   2588     151    0.773 0.00656        0.760        0.786
   48   2185     103    0.740 0.00703        0.727        0.754
   60   1828      84    0.710 0.00748        0.695        0.725
  120    452     207    0.587 0.01039        0.567        0.608

                TNM_CLIN_T=c1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1364      22    0.985 0.00309        0.979        0.991
   24   1163      21    0.969 0.00460        0.960        0.979
   36    921      23    0.949 0.00621        0.937        0.961
   48    682      25    0.919 0.00835        0.903        0.936
   60    475      13    0.899 0.00990        0.880        0.919
  120     35      26    0.783 0.03065        0.725        0.846

                TNM_CLIN_T=c1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    209       3    0.987 0.00724        0.973        1.000
   24    164       3    0.972 0.01143        0.950        0.995
   36    122       6    0.930 0.02003        0.892        0.970
   48     88       2    0.911 0.02378        0.865        0.959
   60     49       1    0.893 0.02926        0.837        0.952

                TNM_CLIN_T=c1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     94       0    1.000  0.0000        1.000        1.000
   24     69       8    0.907  0.0315        0.847        0.971
   36     46       1    0.890  0.0351        0.824        0.961
   48     36       0    0.890  0.0351        0.824        0.961
   60     22       2    0.827  0.0547        0.726        0.941

                TNM_CLIN_T=c2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    651      33    0.956 0.00758        0.941        0.970
   24    541      30    0.908 0.01109        0.887        0.930
   36    421      31    0.852 0.01429        0.825        0.881
   48    297      26    0.793 0.01739        0.760        0.828
   60    210      19    0.734 0.02071        0.695        0.776
  120     13      24    0.513 0.05358        0.418        0.629

                TNM_CLIN_T=c2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     65       1    0.988  0.0124        0.963        1.000
   24     54       2    0.953  0.0266        0.903        1.000
   36     29       3    0.886  0.0456        0.801        0.980
   48     18       0    0.886  0.0456        0.801        0.980
   60     12       1    0.818  0.0778        0.678        0.985

                TNM_CLIN_T=c2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     86       2    0.980  0.0143        0.952        1.000
   24     62       5    0.918  0.0300        0.861        0.978
   36     39       7    0.798  0.0499        0.705        0.902
   48     26       4    0.701  0.0632        0.587        0.836
   60     18       0    0.701  0.0632        0.587        0.836

                TNM_CLIN_T=c3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    318      43    0.886  0.0163        0.855        0.919
   24    230      50    0.738  0.0235        0.694        0.786
   36    160      28    0.641  0.0267        0.590        0.695
   48    112      19    0.558  0.0293        0.503        0.618
   60     67      11    0.490  0.0321        0.431        0.558
  120      3       9    0.359  0.0479        0.276        0.466

                TNM_CLIN_T=c4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    312      76    0.816  0.0192        0.779        0.854
   24    238      45    0.691  0.0236        0.647        0.739
   36    165      42    0.562  0.0263        0.513        0.616
   48    112      21    0.484  0.0277        0.433        0.542
   60     71      14    0.415  0.0294        0.361        0.477
  120      4      18    0.241  0.0434        0.169        0.343

                TNM_CLIN_T=cX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1498     116    0.931 0.00620        0.919        0.943
   24   1333      99    0.868 0.00843        0.851        0.884
   36   1216      86    0.811 0.00985        0.792        0.831
   48   1117      64    0.768 0.01071        0.747        0.789
   60   1016      52    0.731 0.01133        0.709        0.754
  120    358     138    0.602 0.01399        0.576        0.631




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 21 22
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

  n= 10347, number of events= 2670 
   (260 observations deleted due to missingness)

                   coef exp(coef) se(coef)       z Pr(>|z|)    
TNM_CLIN_Tc0         NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc1   -1.20355   0.30013  0.09197 -13.087  < 2e-16 ***
TNM_CLIN_Tc1A  -1.35666   0.25752  0.25976  -5.223 1.76e-07 ***
TNM_CLIN_Tc1B  -0.76895   0.46350  0.29007  -2.651  0.00803 ** 
TNM_CLIN_Tc1C        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc1MI       NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc2   -0.21446   0.80698  0.08309  -2.581  0.00985 ** 
TNM_CLIN_Tc2A  -0.91328   0.40120  0.37905  -2.409  0.01598 *  
TNM_CLIN_Tc2B  -0.19693   0.82125  0.23119  -0.852  0.39431    
TNM_CLIN_Tc2C        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc2D        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc3    0.59451   1.81215  0.08392   7.084 1.40e-12 ***
TNM_CLIN_Tc3A        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc3B        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc4    0.87863   2.40759  0.07366  11.929  < 2e-16 ***
TNM_CLIN_Tc4A        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc4B        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc4C        NA        NA  0.00000      NA       NA    
TNM_CLIN_Tc4D        NA        NA  0.00000      NA       NA    
TNM_CLIN_TcX   -0.12109   0.88595  0.04969  -2.437  0.01482 *  
TNM_CLIN_TpA         NA        NA  0.00000      NA       NA    
TNM_CLIN_TpIS        NA        NA  0.00000      NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0          NA         NA        NA        NA
TNM_CLIN_Tc1      0.3001     3.3319    0.2506    0.3594
TNM_CLIN_Tc1A     0.2575     3.8832    0.1548    0.4285
TNM_CLIN_Tc1B     0.4635     2.1575    0.2625    0.8184
TNM_CLIN_Tc1C         NA         NA        NA        NA
TNM_CLIN_Tc1MI        NA         NA        NA        NA
TNM_CLIN_Tc2      0.8070     1.2392    0.6857    0.9497
TNM_CLIN_Tc2A     0.4012     2.4925    0.1909    0.8434
TNM_CLIN_Tc2B     0.8212     1.2177    0.5220    1.2920
TNM_CLIN_Tc2C         NA         NA        NA        NA
TNM_CLIN_Tc2D         NA         NA        NA        NA
TNM_CLIN_Tc3      1.8121     0.5518    1.5373    2.1361
TNM_CLIN_Tc3A         NA         NA        NA        NA
TNM_CLIN_Tc3B         NA         NA        NA        NA
TNM_CLIN_Tc4      2.4076     0.4154    2.0839    2.7815
TNM_CLIN_Tc4A         NA         NA        NA        NA
TNM_CLIN_Tc4B         NA         NA        NA        NA
TNM_CLIN_Tc4C         NA         NA        NA        NA
TNM_CLIN_Tc4D         NA         NA        NA        NA
TNM_CLIN_TcX      0.8860     1.1287    0.8037    0.9766
TNM_CLIN_TpA          NA         NA        NA        NA
TNM_CLIN_TpIS         NA         NA        NA        NA

Concordance= 0.618  (se = 0.006 )
Rsquare= 0.049   (max possible= 0.988 )
Likelihood ratio test= 518.1  on 9 df,   p=0
Wald test            = 467.2  on 9 df,   p=0
Score (logrank) test = 535.2  on 9 df,   p=0
Removed 14 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_T

Clinical N Stage

uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
   
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

   244 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 4715   1363     NA      NA      NA
TNM_CLIN_N=c0  3400    500     NA      NA      NA
TNM_CLIN_N=c1   194     95   48.5   40.44    65.4
TNM_CLIN_N=c1A   10      4     NA   28.32      NA
TNM_CLIN_N=c1B    9      4   43.4   30.49      NA
TNM_CLIN_N=c2    33     19   36.7   33.12      NA
TNM_CLIN_N=c2A    1      0     NA      NA      NA
TNM_CLIN_N=c2B    6      4   30.3    7.52      NA
TNM_CLIN_N=c3    62     29   37.9   23.75      NA
TNM_CLIN_N=cX  1933    654  155.1  140.71      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

244 observations deleted due to missingness 
                TNM_CLIN_N=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3700     529    0.882 0.00483        0.872        0.891
   24   3089     267    0.815 0.00595        0.804        0.827
   36   2588     151    0.773 0.00656        0.760        0.786
   48   2185     103    0.740 0.00703        0.727        0.754
   60   1828      84    0.710 0.00748        0.695        0.725
  120    452     207    0.587 0.01039        0.567        0.608

                TNM_CLIN_N=c0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2766      98    0.968 0.00315        0.962        0.975
   24   2275     115    0.925 0.00495        0.916        0.935
   36   1730     103    0.879 0.00646        0.867        0.892
   48   1270      69    0.840 0.00773        0.825        0.855
   60    866      49    0.801 0.00916        0.783        0.819
  120     53      66    0.647 0.02491        0.600        0.697

                TNM_CLIN_N=c1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    138      34    0.815  0.0288        0.760        0.873
   24    105      20    0.692  0.0352        0.626        0.765
   36     79      15    0.591  0.0386        0.519        0.671
   48     50       8    0.519  0.0415        0.443        0.607
   60     30       9    0.414  0.0457        0.333        0.514
  120      2       9    0.222  0.0560        0.136        0.364

                TNM_CLIN_N=c1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       1    0.889   0.105        0.706        1.000
   24      7       1    0.778   0.139        0.549        1.000
   36      4       2    0.556   0.166        0.310        0.997
   48      2       0    0.556   0.166        0.310        0.997
   60      1       0    0.556   0.166        0.310        0.997

                TNM_CLIN_N=c1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       2    0.762   0.148        0.521            1
   24      4       0    0.762   0.148        0.521            1
   36      2       1    0.571   0.199        0.289            1
   48      1       1    0.286   0.225        0.061            1
   60      1       0    0.286   0.225        0.061            1

                TNM_CLIN_N=c2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       5    0.842  0.0651        0.723        0.979
   24     18       4    0.695  0.0855        0.546        0.885
   36     12       3    0.563  0.0980        0.400        0.792
   48      6       4    0.375  0.1006        0.222        0.635
   60      3       1    0.300  0.1048        0.151        0.595

                TNM_CLIN_N=c2A 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_CLIN_N=c2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      4       2    0.667   0.192        0.379            1
   24      3       1    0.500   0.204        0.225            1
   36      1       0    0.500   0.204        0.225            1
   48      1       0    0.500   0.204        0.225            1

                TNM_CLIN_N=c3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     42      14    0.763  0.0556        0.661        0.880
   24     25       7    0.612  0.0681        0.493        0.762
   36     19       2    0.560  0.0716        0.436        0.720
   48     11       6    0.365  0.0797        0.238        0.560
   60      8       0    0.365  0.0797        0.238        0.560
  120      1       0    0.365  0.0797        0.238        0.560

                TNM_CLIN_N=cX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1622     142    0.923 0.00622        0.911        0.935
   24   1423     116    0.855 0.00838        0.839        0.871
   36   1277      99    0.794 0.00975        0.775        0.814
   48   1147      74    0.747 0.01060        0.727        0.768
   60   1030      53    0.712 0.01116        0.690        0.734
  120    357     140    0.585 0.01369        0.559        0.613




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_N
Loglik converged before variable  6 ; beta may be infinite. X matrix deemed to be singular; variable 8 10 11 12 13
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

  n= 10363, number of events= 2672 
   (244 observations deleted due to missingness)

                    coef  exp(coef)   se(coef)       z Pr(>|z|)    
TNM_CLIN_Nc0  -5.286e-01  5.894e-01  5.263e-02 -10.043  < 2e-16 ***
TNM_CLIN_Nc1   8.477e-01  2.334e+00  1.064e-01   7.970 1.55e-15 ***
TNM_CLIN_Nc1A  5.498e-01  1.733e+00  5.008e-01   1.098  0.27234    
TNM_CLIN_Nc1B  1.028e+00  2.795e+00  5.009e-01   2.052  0.04017 *  
TNM_CLIN_Nc2   1.116e+00  3.052e+00  2.312e-01   4.826 1.39e-06 ***
TNM_CLIN_Nc2A -9.269e+00  9.428e-05  4.032e+02  -0.023  0.98166    
TNM_CLIN_Nc2B  1.474e+00  4.369e+00  5.009e-01   2.943  0.00325 ** 
TNM_CLIN_Nc2C         NA         NA  0.000e+00      NA       NA    
TNM_CLIN_Nc3   9.474e-01  2.579e+00  1.878e-01   5.044 4.57e-07 ***
TNM_CLIN_Nc3A         NA         NA  0.000e+00      NA       NA    
TNM_CLIN_Nc3B         NA         NA  0.000e+00      NA       NA    
TNM_CLIN_Nc3C         NA         NA  0.000e+00      NA       NA    
TNM_CLIN_Nc4          NA         NA  0.000e+00      NA       NA    
TNM_CLIN_NcX  -5.465e-02  9.468e-01  4.776e-02  -1.144  0.25258    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0  5.894e-01  1.697e+00    0.5317    0.6535
TNM_CLIN_Nc1  2.334e+00  4.284e-01    1.8951    2.8755
TNM_CLIN_Nc1A 1.733e+00  5.771e-01    0.6493    4.6245
TNM_CLIN_Nc1B 2.795e+00  3.578e-01    1.0472    7.4589
TNM_CLIN_Nc2  3.052e+00  3.276e-01    1.9400    4.8024
TNM_CLIN_Nc2A 9.428e-05  1.061e+04    0.0000       Inf
TNM_CLIN_Nc2B 4.369e+00  2.289e-01    1.6366   11.6612
TNM_CLIN_Nc2C        NA         NA        NA        NA
TNM_CLIN_Nc3  2.579e+00  3.878e-01    1.7847    3.7268
TNM_CLIN_Nc3A        NA         NA        NA        NA
TNM_CLIN_Nc3B        NA         NA        NA        NA
TNM_CLIN_Nc3C        NA         NA        NA        NA
TNM_CLIN_Nc4         NA         NA        NA        NA
TNM_CLIN_NcX  9.468e-01  1.056e+00    0.8622    1.0397

Concordance= 0.584  (se = 0.006 )
Rsquare= 0.023   (max possible= 0.988 )
Likelihood ratio test= 237.6  on 9 df,   p=0
Wald test            = 264  on 9 df,   p=0
Score (logrank) test = 287.9  on 9 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_N

Clinical Stage Group

uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

   7 observations deleted due to missingness 
                            n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1   1472    307     NA   158.3      NA
TNM_CLIN_STAGE_GROUP=1A  3752    441     NA      NA      NA
TNM_CLIN_STAGE_GROUP=1B  1345    256     NA   138.3      NA
TNM_CLIN_STAGE_GROUP=2    141     57  111.4    67.4      NA
TNM_CLIN_STAGE_GROUP=2A   232     76  135.5    79.6      NA
TNM_CLIN_STAGE_GROUP=2B   510    214   65.5    53.9    96.7
TNM_CLIN_STAGE_GROUP=3    139     78   48.0    36.5    74.1
TNM_CLIN_STAGE_GROUP=3A   285    127   61.4    42.7    75.7
TNM_CLIN_STAGE_GROUP=3B   132     73   33.2    22.7    55.5
TNM_CLIN_STAGE_GROUP=4    357    222   32.5    24.8    43.0
TNM_CLIN_STAGE_GROUP=4A   355    209   37.4    28.2    49.5
TNM_CLIN_STAGE_GROUP=4A1   75     33   45.4    32.4    76.3
TNM_CLIN_STAGE_GROUP=4A2   31     13   40.0    23.8      NA
TNM_CLIN_STAGE_GROUP=4B   176    123   15.9    10.1    23.7
TNM_CLIN_STAGE_GROUP=N_A   23      5     NA      NA      NA
TNM_CLIN_STAGE_GROUP=99  1575    484  155.1   132.3      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

7 observations deleted due to missingness 
                TNM_CLIN_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1241      80    0.943 0.00620        0.931        0.955
   24   1100      48    0.905 0.00801        0.889        0.921
   36    964      41    0.870 0.00942        0.851        0.888
   48    846      29    0.842 0.01041        0.822        0.863
   60    710      34    0.806 0.01166        0.784        0.829
  120    193      68    0.692 0.01682        0.660        0.726

                TNM_CLIN_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3160      71    0.980 0.00241        0.975        0.984
   24   2689      85    0.952 0.00380        0.944        0.959
   36   2206      67    0.926 0.00480        0.917        0.936
   48   1760      54    0.901 0.00576        0.890        0.913
   60   1389      43    0.877 0.00666        0.864        0.890
  120    277     107    0.761 0.01301        0.736        0.787

                TNM_CLIN_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1101      49    0.960 0.00554        0.950        0.971
   24    937      45    0.919 0.00809        0.903        0.935
   36    740      45    0.871 0.01037        0.851        0.891
   48    571      39    0.820 0.01255        0.796        0.845
   60    454      24    0.782 0.01415        0.755        0.810
  120     82      47    0.632 0.02464        0.585        0.682

                TNM_CLIN_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    114      16    0.883  0.0276        0.830        0.938
   24     91      13    0.778  0.0365        0.710        0.853
   36     74       9    0.697  0.0416        0.620        0.784
   48     66       3    0.668  0.0432        0.588        0.758
   60     60       3    0.636  0.0448        0.554        0.730
  120     12      11    0.463  0.0594        0.360        0.595

                TNM_CLIN_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    185      25    0.887  0.0212        0.847        0.930
   24    156      14    0.817  0.0266        0.767        0.871
   36    120      13    0.743  0.0312        0.684        0.806
   48     88      10    0.674  0.0352        0.608        0.746
   60     69       7    0.617  0.0382        0.546        0.696
  120     13       6    0.548  0.0435        0.469        0.640

                TNM_CLIN_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    412      57    0.883  0.0146        0.855        0.912
   24    308      62    0.742  0.0205        0.703        0.784
   36    221      38    0.644  0.0232        0.600        0.691
   48    162      26    0.562  0.0252        0.515        0.614
   60    116      10    0.522  0.0265        0.472        0.576
  120     10      21    0.332  0.0437        0.257        0.430

                TNM_CLIN_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    106      24    0.819  0.0335        0.756        0.887
   24     84      15    0.699  0.0405        0.624        0.783
   36     68      13    0.589  0.0441        0.509        0.682
   48     55       9    0.509  0.0455        0.427        0.606
   60     39       7    0.438  0.0464        0.356        0.539
  120      6       9    0.254  0.0610        0.159        0.407

                TNM_CLIN_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    206      36    0.860  0.0217        0.818        0.903
   24    163      30    0.730  0.0286        0.676        0.788
   36    119      30    0.589  0.0328        0.528        0.656
   48     99       8    0.547  0.0336        0.485        0.617
   60     69       7    0.504  0.0347        0.440        0.577
  120     11      15    0.368  0.0404        0.297        0.456

                TNM_CLIN_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     90      33    0.740  0.0390        0.668        0.821
   24     65      20    0.570  0.0450        0.488        0.665
   36     49       8    0.496  0.0461        0.414        0.595
   48     39       5    0.445  0.0467        0.362        0.547
   60     25       4    0.393  0.0480        0.310        0.500
  120      4       3    0.335  0.0515        0.248        0.453

                TNM_CLIN_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    220     116    0.665  0.0255        0.617        0.716
   24    175      30    0.570  0.0271        0.520        0.626
   36    135      27    0.480  0.0278        0.428        0.537
   48    109      19    0.410  0.0280        0.359        0.469
   60     98       5    0.391  0.0280        0.340        0.450
  120     24      23    0.259  0.0307        0.205        0.326

                TNM_CLIN_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    241      91    0.737  0.0237        0.692        0.785
   24    170      49    0.581  0.0273        0.530        0.637
   36    131      22    0.501  0.0283        0.449        0.560
   48    101      12    0.453  0.0289        0.400        0.513
   60     83      10    0.406  0.0294        0.352        0.468
  120     18      22    0.249  0.0337        0.191        0.324

                TNM_CLIN_STAGE_GROUP=4A1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     56       8    0.888  0.0373        0.818        0.964
   24     43       7    0.771  0.0525        0.675        0.881
   36     26       9    0.590  0.0665        0.474        0.736
   48     11       4    0.453  0.0805        0.320        0.642
   60      7       3    0.320  0.0862        0.189        0.543

                TNM_CLIN_STAGE_GROUP=4A2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       6    0.806  0.0710        0.679        0.958
   24     12       4    0.628  0.0977        0.463        0.852
   36      8       1    0.571  0.1042        0.400        0.817
   48      4       2    0.381  0.1301        0.195        0.744
   60      3       0    0.381  0.1301        0.195        0.744

                TNM_CLIN_STAGE_GROUP=4B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     86      77    0.544  0.0385        0.473        0.625
   24     59      20    0.409  0.0390        0.340        0.494
   36     44      10    0.337  0.0383        0.270        0.421
   48     30       7    0.281  0.0374        0.217        0.365
   60     21       4    0.239  0.0372        0.177        0.325
  120      5       4    0.181  0.0381        0.120        0.274

                TNM_CLIN_STAGE_GROUP=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     19       3    0.870  0.0702        0.742        1.000
   24     16       1    0.821  0.0813        0.676        0.997
   36     11       1    0.758  0.0965        0.591        0.973
   48      8       0    0.758  0.0965        0.591        0.973
   60      5       0    0.758  0.0965        0.591        0.973

                TNM_CLIN_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1233     155    0.894 0.00804        0.879        0.910
   24   1022     100    0.818 0.01037        0.798        0.839
   36    893      48    0.778 0.01136        0.756        0.801
   48    786      42    0.740 0.01223        0.716        0.764
   60    662      39    0.701 0.01310        0.675        0.727
  120    210      87    0.565 0.01743        0.532        0.601




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 18 20
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

  n= 10600, number of events= 2718 
   (7 observations deleted due to missingness)

                            coef exp(coef) se(coef)       z Pr(>|z|)    
TNM_CLIN_STAGE_GROUP1   -0.48211   0.61748  0.07297  -6.607 3.92e-11 ***
TNM_CLIN_STAGE_GROUP1A  -0.91698   0.39972  0.06595 -13.904  < 2e-16 ***
TNM_CLIN_STAGE_GROUP1B  -0.38228   0.68231  0.07742  -4.937 7.92e-07 ***
TNM_CLIN_STAGE_GROUP1C        NA        NA  0.00000      NA       NA    
TNM_CLIN_STAGE_GROUP2    0.32838   1.38872  0.14006   2.345 0.019045 *  
TNM_CLIN_STAGE_GROUP2A   0.20114   1.22279  0.12347   1.629 0.103316    
TNM_CLIN_STAGE_GROUP2B   0.57384   1.77507  0.08246   6.959 3.42e-12 ***
TNM_CLIN_STAGE_GROUP2C        NA        NA  0.00000      NA       NA    
TNM_CLIN_STAGE_GROUP3    0.81880   2.26777  0.12216   6.703 2.05e-11 ***
TNM_CLIN_STAGE_GROUP3A   0.65160   1.91860  0.09990   6.523 6.91e-11 ***
TNM_CLIN_STAGE_GROUP3B   0.96605   2.62754  0.12579   7.680 1.59e-14 ***
TNM_CLIN_STAGE_GROUP3C        NA        NA  0.00000      NA       NA    
TNM_CLIN_STAGE_GROUP4    1.03381   2.81175  0.08115  12.740  < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A   1.02225   2.77944  0.08301  12.314  < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A1  0.84372   2.32500  0.18040   4.677 2.91e-06 ***
TNM_CLIN_STAGE_GROUP4A2  0.95522   2.59925  0.28140   3.395 0.000687 ***
TNM_CLIN_STAGE_GROUP4B   1.51180   4.53487  0.10134  14.919  < 2e-16 ***
TNM_CLIN_STAGE_GROUP4C        NA        NA  0.00000      NA       NA    
TNM_CLIN_STAGE_GROUPN_A -0.04061   0.96021  0.44967  -0.090 0.928045    
TNM_CLIN_STAGE_GROUP99        NA        NA  0.00000      NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1      0.6175     1.6195    0.5352    0.7124
TNM_CLIN_STAGE_GROUP1A     0.3997     2.5017    0.3513    0.4549
TNM_CLIN_STAGE_GROUP1B     0.6823     1.4656    0.5862    0.7941
TNM_CLIN_STAGE_GROUP1C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2      1.3887     0.7201    1.0554    1.8274
TNM_CLIN_STAGE_GROUP2A     1.2228     0.8178    0.9600    1.5576
TNM_CLIN_STAGE_GROUP2B     1.7751     0.5634    1.5102    2.0864
TNM_CLIN_STAGE_GROUP2C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP3      2.2678     0.4410    1.7849    2.8813
TNM_CLIN_STAGE_GROUP3A     1.9186     0.5212    1.5774    2.3336
TNM_CLIN_STAGE_GROUP3B     2.6275     0.3806    2.0534    3.3622
TNM_CLIN_STAGE_GROUP3C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP4      2.8117     0.3557    2.3983    3.2965
TNM_CLIN_STAGE_GROUP4A     2.7794     0.3598    2.3621    3.2705
TNM_CLIN_STAGE_GROUP4A1    2.3250     0.4301    1.6326    3.3111
TNM_CLIN_STAGE_GROUP4A2    2.5992     0.3847    1.4973    4.5120
TNM_CLIN_STAGE_GROUP4B     4.5349     0.2205    3.7180    5.5312
TNM_CLIN_STAGE_GROUP4C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUPN_A    0.9602     1.0414    0.3977    2.3180
TNM_CLIN_STAGE_GROUP99         NA         NA        NA        NA

Concordance= 0.709  (se = 0.006 )
Rsquare= 0.119   (max possible= 0.988 )
Likelihood ratio test= 1347  on 15 df,   p=0
Wald test            = 1436  on 15 df,   p=0
Score (logrank) test = 1776  on 15 df,   p=0
Removed 6 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 16.

Pathologic T Stage

uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
   
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

   2056 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 4655   1351     NA      NA      NA
TNM_PATH_T=p1   786     65     NA      NA      NA
TNM_PATH_T=p1A   89      6     NA      NA      NA
TNM_PATH_T=p1B   41      4     NA      NA      NA
TNM_PATH_T=p2   351     68     NA    90.8      NA
TNM_PATH_T=p2A   19      2     NA      NA      NA
TNM_PATH_T=p2B   33      8   41.1    34.4      NA
TNM_PATH_T=p3   165     59   66.0    53.9      NA
TNM_PATH_T=p4   196     92   46.2    36.7    65.4
TNM_PATH_T=pX  2216    717  158.3   147.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

2056 observations deleted due to missingness 
                TNM_PATH_T=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3658     522    0.882 0.00486        0.873        0.892
   24   3063     264    0.815 0.00598        0.804        0.827
   36   2570     151    0.773 0.00659        0.760        0.786
   48   2174     102    0.740 0.00707        0.727        0.754
   60   1823      83    0.710 0.00751        0.696        0.725
  120    452     207    0.587 0.01041        0.567        0.608

                TNM_PATH_T=p1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    629      15    0.979 0.00544        0.968        0.989
   24    539      13    0.957 0.00790        0.942        0.973
   36    422       9    0.940 0.00966        0.921        0.959
   48    294      13    0.907 0.01302        0.882        0.933
   60    187       8    0.877 0.01628        0.846        0.910
  120      6       7    0.833 0.02367        0.788        0.881

                TNM_PATH_T=p1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     77       1    0.988  0.0121        0.964        1.000
   24     67       1    0.973  0.0186        0.938        1.000
   36     54       3    0.924  0.0330        0.861        0.991
   48     42       1    0.902  0.0386        0.830        0.981
   60     23       0    0.902  0.0386        0.830        0.981

                TNM_PATH_T=p1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     32       0    1.000  0.0000        1.000            1
   24     26       2    0.935  0.0441        0.853            1
   36     23       0    0.935  0.0441        0.853            1
   48     15       0    0.935  0.0441        0.853            1
   60      8       2    0.772  0.1135        0.579            1

                TNM_PATH_T=p2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    286      14    0.957  0.0113        0.935        0.979
   24    248      12    0.914  0.0162        0.883        0.946
   36    198      14    0.859  0.0209        0.818        0.901
   48    128      11    0.801  0.0258        0.752        0.853
   60     82       8    0.740  0.0317        0.680        0.805

                TNM_PATH_T=p2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13       0    1.000   0.000        1.000            1
   24     11       0    1.000   0.000        1.000            1
   36      6       2    0.778   0.139        0.549            1
   48      4       0    0.778   0.139        0.549            1
   60      3       0    0.778   0.139        0.549            1

                TNM_PATH_T=p2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       1    0.963  0.0363        0.894        1.000
   24     12       2    0.854  0.0802        0.710        1.000
   36      8       3    0.626  0.1274        0.420        0.933
   48      6       2    0.470  0.1353        0.267        0.826
   60      5       0    0.470  0.1353        0.267        0.826

                TNM_PATH_T=p3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    134      14    0.909  0.0231        0.865        0.956
   24     97      18    0.781  0.0343        0.717        0.852
   36     76       8    0.713  0.0390        0.640        0.793
   48     51       9    0.616  0.0451        0.534        0.711
   60     29       6    0.524  0.0519        0.432        0.637
  120      2       4    0.383  0.0790        0.256        0.574

                TNM_PATH_T=p4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    140      34    0.814  0.0288        0.760        0.873
   24    111      19    0.700  0.0348        0.635        0.771
   36     79      17    0.585  0.0387        0.514        0.666
   48     49      12    0.488  0.0412        0.414        0.576
   60     27       5    0.428  0.0442        0.350        0.524

                TNM_PATH_T=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1891     144    0.932 0.00547        0.921        0.943
   24   1694     121    0.871 0.00742        0.856        0.885
   36   1526     109    0.814 0.00872        0.797        0.831
   48   1400      79    0.771 0.00950        0.753        0.790
   60   1277      61    0.737 0.01004        0.717        0.757
  120    405     173    0.603 0.01274        0.579        0.629




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 20 21
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

  n= 8551, number of events= 2372 
   (2056 observations deleted due to missingness)

                   coef exp(coef) se(coef)      z Pr(>|z|)    
TNM_PATH_Tp0         NA        NA  0.00000     NA       NA    
TNM_PATH_Tp1   -1.09138   0.33575  0.12718 -8.581  < 2e-16 ***
TNM_PATH_Tp1A  -1.35229   0.25865  0.40924 -3.304 0.000952 ***
TNM_PATH_Tp1B  -0.90127   0.40605  0.50080 -1.800 0.071916 .  
TNM_PATH_Tp1C        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp1MI       NA        NA  0.00000     NA       NA    
TNM_PATH_Tp2   -0.25293   0.77652  0.12452 -2.031 0.042230 *  
TNM_PATH_Tp2A  -0.61423   0.54106  0.70770 -0.868 0.385435    
TNM_PATH_Tp2B   0.31861   1.37521  0.35475  0.898 0.369120    
TNM_PATH_Tp2C        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp2D        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp3    0.43640   1.54713  0.13321  3.276 0.001053 ** 
TNM_PATH_Tp3A        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp3B        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp4    0.83398   2.30247  0.10815  7.712 1.24e-14 ***
TNM_PATH_Tp4A        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp4B        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp4C        NA        NA  0.00000     NA       NA    
TNM_PATH_Tp4D        NA        NA  0.00000     NA       NA    
TNM_PATH_TpA         NA        NA  0.00000     NA       NA    
TNM_PATH_TpIS        NA        NA  0.00000     NA       NA    
TNM_PATH_TpX   -0.12927   0.87874  0.04643 -2.784 0.005365 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0          NA         NA        NA        NA
TNM_PATH_Tp1      0.3358     2.9784    0.2617    0.4308
TNM_PATH_Tp1A     0.2586     3.8663    0.1160    0.5768
TNM_PATH_Tp1B     0.4061     2.4627    0.1522    1.0836
TNM_PATH_Tp1C         NA         NA        NA        NA
TNM_PATH_Tp1MI        NA         NA        NA        NA
TNM_PATH_Tp2      0.7765     1.2878    0.6084    0.9912
TNM_PATH_Tp2A     0.5411     1.8482    0.1352    2.1659
TNM_PATH_Tp2B     1.3752     0.7272    0.6861    2.7563
TNM_PATH_Tp2C         NA         NA        NA        NA
TNM_PATH_Tp2D         NA         NA        NA        NA
TNM_PATH_Tp3      1.5471     0.6464    1.1916    2.0087
TNM_PATH_Tp3A         NA         NA        NA        NA
TNM_PATH_Tp3B         NA         NA        NA        NA
TNM_PATH_Tp4      2.3025     0.4343    1.8627    2.8461
TNM_PATH_Tp4A         NA         NA        NA        NA
TNM_PATH_Tp4B         NA         NA        NA        NA
TNM_PATH_Tp4C         NA         NA        NA        NA
TNM_PATH_Tp4D         NA         NA        NA        NA
TNM_PATH_TpA          NA         NA        NA        NA
TNM_PATH_TpIS         NA         NA        NA        NA
TNM_PATH_TpX      0.8787     1.1380    0.8023    0.9625

Concordance= 0.571  (se = 0.006 )
Rsquare= 0.023   (max possible= 0.991 )
Likelihood ratio test= 200.4  on 9 df,   p=0
Wald test            = 181.1  on 9 df,   p=0
Score (logrank) test = 199.2  on 9 df,   p=0
Removed 14 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_T

Pathologic N Stage

uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
   
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

   1971 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 4654   1351     NA      NA      NA
TNM_PATH_N=p0   762    106     NA      NA      NA
TNM_PATH_N=p1    45     24   48.7    27.5      NA
TNM_PATH_N=p1A    4      1     NA     9.2      NA
TNM_PATH_N=p1B    4      1   43.4      NA      NA
TNM_PATH_N=p2    17      8   55.0    36.7      NA
TNM_PATH_N=p2B    1      0     NA      NA      NA
TNM_PATH_N=p3    18     12   21.7    10.3      NA
TNM_PATH_N=pX  3131    883  158.3   147.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

1971 observations deleted due to missingness 
                TNM_PATH_N=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3657     522    0.882 0.00486        0.872        0.892
   24   3062     264    0.815 0.00598        0.804        0.827
   36   2570     151    0.773 0.00660        0.760        0.786
   48   2174     102    0.740 0.00707        0.726        0.754
   60   1823      83    0.710 0.00751        0.696        0.725
  120    452     207    0.587 0.01041        0.567        0.608

                TNM_PATH_N=p0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    608      19    0.972 0.00626        0.960        0.985
   24    523      21    0.937 0.00965        0.918        0.956
   36    404      21    0.895 0.01294        0.870        0.920
   48    299      13    0.861 0.01546        0.831        0.892
   60    209      14    0.815 0.01898        0.778        0.853
  120      8      18    0.691 0.03461        0.626        0.762

                TNM_PATH_N=p1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     28      11    0.738  0.0682        0.616        0.885
   24     24       2    0.683  0.0734        0.553        0.843
   36     19       3    0.598  0.0790        0.461        0.775
   48     13       1    0.565  0.0813        0.426        0.749
   60      7       5    0.342  0.0923        0.202        0.580

                TNM_PATH_N=p1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1     0.75   0.217        0.426            1
   24      3       0     0.75   0.217        0.426            1
   36      2       0     0.75   0.217        0.426            1
   48      2       0     0.75   0.217        0.426            1
   60      1       0     0.75   0.217        0.426            1

                TNM_PATH_N=p1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1

                TNM_PATH_N=p2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12       3    0.812  0.0976        0.642        1.000
   24     12       0    0.812  0.0976        0.642        1.000
   36      8       1    0.731  0.1168        0.535        1.000
   48      4       2    0.533  0.1477        0.310        0.918
   60      1       1    0.355  0.1754        0.135        0.935

                TNM_PATH_N=p2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1

                TNM_PATH_N=p3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12       6    0.667   0.111       0.4809        0.924
   24      7       4    0.432   0.119       0.2516        0.742
   36      5       1    0.370   0.117       0.1993        0.688
   48      2       1    0.247   0.128       0.0897        0.679
   60      2       0    0.247   0.128       0.0897        0.679

                TNM_PATH_N=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2630     183    0.938 0.00443        0.930        0.947
   24   2290     167    0.876 0.00621        0.864        0.888
   36   2004     140    0.821 0.00737        0.807        0.836
   48   1705     112    0.773 0.00822        0.757        0.789
   60   1447      71    0.739 0.00880        0.722        0.756
  120    405     180    0.605 0.01206        0.582        0.629




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_N
Loglik converged before variable  13 ; beta may be infinite. X matrix deemed to be singular; variable 2 3 4 5 9 10 12 14 16 17 18 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

  n= 8636, number of events= 2386 
   (1971 observations deleted due to missingness)

                     coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_PATH_Np0   -5.912e-01  5.536e-01  1.011e-01 -5.850 4.91e-09 ***
TNM_PATH_Np0I-         NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np0I+         NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np0M-         NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np0M+         NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np1    9.905e-01  2.693e+00  2.061e-01  4.806 1.54e-06 ***
TNM_PATH_Np1A  -5.270e-02  9.487e-01  1.000e+00 -0.053 0.957985    
TNM_PATH_Np1B   5.883e-01  1.801e+00  1.001e+00  0.588 0.556559    
TNM_PATH_Np1C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np1MI         NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np2    7.988e-01  2.223e+00  3.547e-01  2.252 0.024336 *  
TNM_PATH_Np2A          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np2B  -1.060e+01  2.504e-05  4.607e+02 -0.023 0.981650    
TNM_PATH_Np2C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np3    1.350e+00  3.856e+00  2.901e-01  4.651 3.30e-06 ***
TNM_PATH_Np3A          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np3B          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np3C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_Np4           NA         NA  0.000e+00     NA       NA    
TNM_PATH_NpX   -1.549e-01  8.565e-01  4.332e-02 -3.577 0.000347 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0   5.536e-01  1.806e+00    0.4541    0.6749
TNM_PATH_Np0I-        NA         NA        NA        NA
TNM_PATH_Np0I+        NA         NA        NA        NA
TNM_PATH_Np0M-        NA         NA        NA        NA
TNM_PATH_Np0M+        NA         NA        NA        NA
TNM_PATH_Np1   2.693e+00  3.714e-01    1.7978    4.0328
TNM_PATH_Np1A  9.487e-01  1.054e+00    0.1335    6.7399
TNM_PATH_Np1B  1.801e+00  5.553e-01    0.2534   12.7970
TNM_PATH_Np1C         NA         NA        NA        NA
TNM_PATH_Np1MI        NA         NA        NA        NA
TNM_PATH_Np2   2.223e+00  4.499e-01    1.1091    4.4551
TNM_PATH_Np2A         NA         NA        NA        NA
TNM_PATH_Np2B  2.504e-05  3.994e+04    0.0000       Inf
TNM_PATH_Np2C         NA         NA        NA        NA
TNM_PATH_Np3   3.856e+00  2.594e-01    2.1833    6.8088
TNM_PATH_Np3A         NA         NA        NA        NA
TNM_PATH_Np3B         NA         NA        NA        NA
TNM_PATH_Np3C         NA         NA        NA        NA
TNM_PATH_Np4          NA         NA        NA        NA
TNM_PATH_NpX   8.565e-01  1.168e+00    0.7868    0.9324

Concordance= 0.553  (se = 0.006 )
Rsquare= 0.01   (max possible= 0.991 )
Likelihood ratio test= 87.87  on 8 df,   p=1.221e-15
Wald test            = 99.26  on 8 df,   p=0
Score (logrank) test = 108.6  on 8 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 13 rows containing missing values (geom_errorbar).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_N

Pathologic M Stage

uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
   
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

   3778 observations deleted due to missingness 
                  n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 4467   1303     NA      NA      NA
TNM_PATH_M=p1    32     17   37.5    25.1      NA
TNM_PATH_M=pX  2330    748  158.3   147.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

3778 observations deleted due to missingness 
                TNM_PATH_M=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3520     497    0.883 0.00494        0.873        0.893
   24   2965     249    0.818 0.00607        0.806        0.830
   36   2498     149    0.774 0.00671        0.761        0.788
   48   2123     100    0.741 0.00719        0.727        0.756
   60   1786      82    0.711 0.00764        0.696        0.726
  120    452     204    0.588 0.01050        0.568        0.609

                TNM_PATH_M=p1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     21       8    0.739  0.0795        0.598        0.912
   24     16       1    0.695  0.0859        0.546        0.886
   36     10       4    0.508  0.1021        0.343        0.753
   48      6       1    0.457  0.1038        0.293        0.713
   60      4       2    0.305  0.1119        0.148        0.626

                TNM_PATH_M=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1992     148    0.934 0.00528        0.923        0.944
   24   1790     124    0.874 0.00716        0.860        0.888
   36   1617     112    0.818 0.00841        0.802        0.835
   48   1487      80    0.777 0.00916        0.759        0.795
   60   1353      70    0.740 0.00975        0.721        0.759
  120    413     184    0.604 0.01247        0.580        0.629




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_M
X matrix deemed to be singular; variable 1 3 4 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

  n= 6829, number of events= 2068 
   (3778 observations deleted due to missingness)

                  coef exp(coef) se(coef)      z Pr(>|z|)    
TNM_PATH_Mp0        NA        NA  0.00000     NA       NA    
TNM_PATH_Mp1   1.03649   2.81932  0.24431  4.242 2.21e-05 ***
TNM_PATH_Mp1A       NA        NA  0.00000     NA       NA    
TNM_PATH_Mp1B       NA        NA  0.00000     NA       NA    
TNM_PATH_Mp1C       NA        NA  0.00000     NA       NA    
TNM_PATH_MpX  -0.12761   0.88019  0.04607 -2.770  0.00561 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp0         NA         NA        NA        NA
TNM_PATH_Mp1     2.8193     0.3547    1.7466    4.5510
TNM_PATH_Mp1A        NA         NA        NA        NA
TNM_PATH_Mp1B        NA         NA        NA        NA
TNM_PATH_Mp1C        NA         NA        NA        NA
TNM_PATH_MpX     0.8802     1.1361    0.8042    0.9634

Concordance= 0.528  (se = 0.006 )
Rsquare= 0.003   (max possible= 0.993 )
Likelihood ratio test= 21.99  on 2 df,   p=1.679e-05
Wald test            = 27.3  on 2 df,   p=1.179e-06
Score (logrank) test = 29.34  on 2 df,   p=4.263e-07
Removed 5 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_M

Pathologic Stage Group

uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

   1249 observations deleted due to missingness 
                            n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1    574    120     NA      NA      NA
TNM_PATH_STAGE_GROUP=1A  1086    142     NA      NA      NA
TNM_PATH_STAGE_GROUP=1B   321     62     NA   118.3      NA
TNM_PATH_STAGE_GROUP=2     61     26  132.9    64.1      NA
TNM_PATH_STAGE_GROUP=2A    69     20  135.5    77.3      NA
TNM_PATH_STAGE_GROUP=2B   141     53  102.1    53.9      NA
TNM_PATH_STAGE_GROUP=3     54     31   48.2    34.9      NA
TNM_PATH_STAGE_GROUP=3A    80     38   63.9    31.6      NA
TNM_PATH_STAGE_GROUP=3B    49     25   55.5    30.2      NA
TNM_PATH_STAGE_GROUP=4    152     95   32.2    24.0    45.3
TNM_PATH_STAGE_GROUP=4A   112     73   23.5    14.6    54.4
TNM_PATH_STAGE_GROUP=4A1    1      0     NA      NA      NA
TNM_PATH_STAGE_GROUP=4B    84     54   30.5    17.7    41.1
TNM_PATH_STAGE_GROUP=N_A   21      5     NA      NA      NA
TNM_PATH_STAGE_GROUP=99  6553   1724     NA   155.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

1249 observations deleted due to missingness 
                TNM_PATH_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    473      32    0.941  0.0101        0.921        0.961
   24    429      18    0.904  0.0130        0.879        0.930
   36    384      16    0.869  0.0151        0.840        0.899
   48    338      14    0.836  0.0169        0.804        0.870
   60    300       9    0.813  0.0181        0.778        0.849
  120     77      28    0.696  0.0266        0.646        0.750

                TNM_PATH_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    910      25    0.975 0.00494        0.965        0.985
   24    805      24    0.948 0.00725        0.934        0.962
   36    670      21    0.921 0.00911        0.904        0.939
   48    537      17    0.895 0.01081        0.874        0.917
   60    422      19    0.861 0.01292        0.836        0.887
  120     99      34    0.745 0.02323        0.701        0.792

                TNM_PATH_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    261      14    0.953  0.0123        0.929        0.977
   24    230      10    0.914  0.0168        0.882        0.948
   36    195       8    0.880  0.0202        0.841        0.920
   48    153       8    0.840  0.0237        0.794        0.887
   60    126       7    0.798  0.0272        0.747        0.853
  120     18      15    0.597  0.0560        0.497        0.718

                TNM_PATH_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     50       6    0.897  0.0399        0.822        0.979
   24     43       3    0.841  0.0489        0.750        0.942
   36     33       7    0.699  0.0637        0.584        0.835
   48     30       1    0.677  0.0653        0.560        0.818
   60     27       2    0.630  0.0687        0.509        0.780
  120      9       4    0.502  0.0822        0.364        0.692

                TNM_PATH_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     55       4    0.937  0.0305        0.879        0.999
   24     48       4    0.867  0.0438        0.786        0.958
   36     36       5    0.772  0.0562        0.669        0.890
   48     28       1    0.747  0.0596        0.639        0.873
   60     21       2    0.690  0.0675        0.569        0.835
  120      4       3    0.542  0.0948        0.384        0.764

                TNM_PATH_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    112      17    0.873  0.0289        0.818        0.931
   24     88      12    0.774  0.0371        0.705        0.850
   36     71       9    0.691  0.0422        0.614        0.779
   48     52       6    0.625  0.0461        0.541        0.722
   60     35       5    0.553  0.0508        0.462        0.662
  120      4       4    0.406  0.0772        0.280        0.590

                TNM_PATH_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     42      11    0.795  0.0552       0.6935        0.911
   24     37       3    0.737  0.0604       0.6276        0.865
   36     29       6    0.614  0.0681       0.4942        0.763
   48     23       3    0.546  0.0710       0.4231        0.704
   60     18       4    0.451  0.0728       0.3286        0.619
  120      2       4    0.229  0.1075       0.0913        0.575

                TNM_PATH_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     54      15    0.792  0.0481        0.703        0.892
   24     42       7    0.682  0.0565        0.580        0.803
   36     30       8    0.546  0.0626        0.436        0.684
   48     26       1    0.527  0.0633        0.416        0.666
   60     19       1    0.506  0.0642        0.394        0.648
  120      4       5    0.338  0.0765        0.217        0.526

                TNM_PATH_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35      11    0.764  0.0623        0.651        0.896
   24     30       4    0.677  0.0688        0.554        0.826
   36     23       4    0.581  0.0738        0.453        0.746
   48     18       3    0.503  0.0766        0.373        0.678
   60     11       3    0.395  0.0816        0.264        0.592
  120      1       0    0.395  0.0816        0.264        0.592

                TNM_PATH_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     93      54    0.639  0.0393        0.566        0.721
   24     79       9    0.575  0.0408        0.501        0.661
   36     59      16    0.457  0.0418        0.382        0.546
   48     47       7    0.401  0.0416        0.327        0.492
   60     45       1    0.393  0.0416        0.319        0.483
  120     12       7    0.309  0.0447        0.233        0.411

                TNM_PATH_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     66      39    0.644  0.0459        0.560        0.740
   24     50      15    0.497  0.0487        0.410        0.602
   36     42       4    0.455  0.0488        0.369        0.562
   48     34       4    0.410  0.0489        0.325        0.518
   60     28       3    0.372  0.0491        0.288        0.482
  120      3       8    0.214  0.0552        0.129        0.355

                TNM_PATH_STAGE_GROUP=4A1 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_PATH_STAGE_GROUP=4B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     49      28    0.652  0.0534       0.5553        0.766
   24     36       8    0.539  0.0571       0.4383        0.664
   36     27       7    0.432  0.0585       0.3309        0.563
   48     18       5    0.349  0.0578       0.2524        0.483
   60     13       3    0.288  0.0575       0.1949        0.426
  120      2       3    0.180  0.0610       0.0927        0.350

                TNM_PATH_STAGE_GROUP=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17       3    0.857  0.0764        0.720        1.000
   24     15       1    0.804  0.0884        0.648        0.997
   36     10       1    0.737  0.1033        0.560        0.970
   48      7       0    0.737  0.1033        0.560        0.970
   60      4       0    0.737  0.1033        0.560        0.970

                TNM_PATH_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   5305     498    0.919 0.00347        0.913        0.926
   24   4422     357    0.854 0.00463        0.845        0.863
   36   3699     233    0.807 0.00532        0.796        0.817
   48   3108     172    0.767 0.00586        0.756        0.779
   60   2556     129    0.733 0.00633        0.720        0.745
  120    630     294    0.603 0.00907        0.585        0.621




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_STAGE_GROUP
Loglik converged before variable  15 ; beta may be infinite. X matrix deemed to be singular; variable 4 8 12 17 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

  n= 9358, number of events= 2468 
   (1249 observations deleted due to missingness)

                              coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_PATH_STAGE_GROUP1   -3.725e-01  6.890e-01  9.445e-02 -3.944 8.02e-05 ***
TNM_PATH_STAGE_GROUP1A  -7.176e-01  4.879e-01  8.732e-02 -8.218 2.22e-16 ***
TNM_PATH_STAGE_GROUP1B  -2.980e-01  7.423e-01  1.293e-01 -2.305 0.021151 *  
TNM_PATH_STAGE_GROUP1C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP2    4.449e-01  1.560e+00  1.976e-01  2.252 0.024350 *  
TNM_PATH_STAGE_GROUP2A   2.086e-01  1.232e+00  2.249e-01  0.927 0.353788    
TNM_PATH_STAGE_GROUP2B   5.228e-01  1.687e+00  1.395e-01  3.747 0.000179 ***
TNM_PATH_STAGE_GROUP2C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP3    8.897e-01  2.434e+00  1.813e-01  4.908 9.18e-07 ***
TNM_PATH_STAGE_GROUP3A   8.628e-01  2.370e+00  1.641e-01  5.260 1.44e-07 ***
TNM_PATH_STAGE_GROUP3B   9.013e-01  2.463e+00  2.015e-01  4.472 7.75e-06 ***
TNM_PATH_STAGE_GROUP3C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP4    1.132e+00  3.103e+00  1.054e-01 10.742  < 2e-16 ***
TNM_PATH_STAGE_GROUP4A   1.287e+00  3.622e+00  1.196e-01 10.763  < 2e-16 ***
TNM_PATH_STAGE_GROUP4A1 -9.525e+00  7.301e-05  4.039e+02 -0.024 0.981184    
TNM_PATH_STAGE_GROUP4B   1.371e+00  3.939e+00  1.384e-01  9.908  < 2e-16 ***
TNM_PATH_STAGE_GROUP4C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUPN_A  1.709e-01  1.186e+00  4.480e-01  0.381 0.702862    
TNM_PATH_STAGE_GROUP99          NA         NA  0.000e+00     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1   6.890e-01  1.451e+00    0.5726    0.8291
TNM_PATH_STAGE_GROUP1A  4.879e-01  2.049e+00    0.4112    0.5790
TNM_PATH_STAGE_GROUP1B  7.423e-01  1.347e+00    0.5761    0.9563
TNM_PATH_STAGE_GROUP1C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2   1.560e+00  6.409e-01    1.0593    2.2984
TNM_PATH_STAGE_GROUP2A  1.232e+00  8.117e-01    0.7927    1.9145
TNM_PATH_STAGE_GROUP2B  1.687e+00  5.928e-01    1.2832    2.2174
TNM_PATH_STAGE_GROUP2C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3   2.434e+00  4.108e-01    1.7065    3.4728
TNM_PATH_STAGE_GROUP3A  2.370e+00  4.220e-01    1.7182    3.2686
TNM_PATH_STAGE_GROUP3B  2.463e+00  4.060e-01    1.6591    3.6558
TNM_PATH_STAGE_GROUP3C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP4   3.103e+00  3.223e-01    2.5238    3.8152
TNM_PATH_STAGE_GROUP4A  3.622e+00  2.761e-01    2.8655    4.5794
TNM_PATH_STAGE_GROUP4A1 7.301e-05  1.370e+04    0.0000       Inf
TNM_PATH_STAGE_GROUP4B  3.939e+00  2.539e-01    3.0033    5.1661
TNM_PATH_STAGE_GROUP4C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUPN_A 1.186e+00  8.429e-01    0.4931    2.8544
TNM_PATH_STAGE_GROUP99         NA         NA        NA        NA

Concordance= 0.597  (se = 0.005 )
Rsquare= 0.045   (max possible= 0.989 )
Likelihood ratio test= 427.8  on 14 df,   p=0
Wald test            = 508.4  on 14 df,   p=0
Score (logrank) test = 582  on 14 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 15.

Margins

uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
   
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                             n events median 0.95LCL 0.95UCL
MARGINS=No Residual        794    120     NA      NA      NA
MARGINS=Residual, NOS      166     32     NA   109.7      NA
MARGINS=Microscopic Resid   68     16     NA   131.7      NA
MARGINS=Macroscopic Resid   63     14     NA    86.4      NA
MARGINS=Not evaluable      418     89     NA      NA      NA
MARGINS=No surg           8183   2228    158   141.7      NA
MARGINS=Unknown            915    220     NA   147.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                MARGINS=No Residual 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    685      23    0.969 0.00628        0.957        0.982
   24    592      25    0.932 0.00948        0.914        0.951
   36    510      16    0.906 0.01125        0.884        0.928
   48    436      16    0.876 0.01317        0.850        0.902
   60    364      10    0.854 0.01451        0.826        0.883
  120     89      27    0.757 0.02257        0.714        0.802

                MARGINS=Residual, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    140       9    0.943  0.0185        0.907        0.980
   24    116       5    0.908  0.0236        0.862        0.955
   36     94       6    0.859  0.0296        0.802        0.919
   48     83       3    0.830  0.0329        0.768        0.897
   60     69       1    0.819  0.0343        0.755        0.889
  120     11       8    0.609  0.0760        0.477        0.777

                MARGINS=Microscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     61       2    0.969  0.0217        0.927        1.000
   24     51       3    0.919  0.0350        0.853        0.990
   36     42       3    0.860  0.0463        0.774        0.956
   48     38       1    0.838  0.0501        0.745        0.942
   60     33       1    0.816  0.0534        0.718        0.928
  120     15       5    0.682  0.0713        0.556        0.837

                MARGINS=Macroscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     48       5    0.913  0.0372        0.843        0.989
   24     42       2    0.873  0.0453        0.788        0.966
   36     31       2    0.821  0.0553        0.720        0.937
   48     26       1    0.794  0.0598        0.685        0.920
   60     22       1    0.763  0.0649        0.646        0.902
  120      3       3    0.604  0.0995        0.437        0.834

                MARGINS=Not evaluable 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    350      25    0.936  0.0124        0.912        0.961
   24    294      23    0.872  0.0173        0.838        0.906
   36    248       8    0.846  0.0191        0.810        0.884
   48    209      12    0.804  0.0217        0.762        0.847
   60    162       6    0.778  0.0234        0.733        0.825
  120     33      13    0.699  0.0301        0.642        0.760

                MARGINS=No surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6501     700    0.909 0.00328        0.903        0.916
   24   5401     437    0.845 0.00426        0.836        0.853
   36   4388     329    0.790 0.00494        0.780        0.800
   48   3528     222    0.747 0.00546        0.736        0.757
   60   2835     161    0.710 0.00592        0.698        0.721
  120    631     338    0.571 0.00880        0.554        0.588

                MARGINS=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    714      83    0.903  0.0102        0.883        0.923
   24    600      48    0.839  0.0130        0.814        0.865
   36    501      19    0.810  0.0141        0.783        0.838
   48    420      14    0.786  0.0151        0.757        0.816
   60    329      20    0.746  0.0168        0.714        0.779
  120     83      31    0.638  0.0242        0.593        0.688




   
## Univariable Cox Proportional Hazard Model for:  MARGINS

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

  n= 10607, number of events= 2719 

                            coef exp(coef) se(coef)     z Pr(>|z|)    
MARGINSResidual, NOS     0.33665   1.40024  0.19897 1.692  0.09065 .  
MARGINSMicroscopic Resid 0.36848   1.44554  0.26617 1.384  0.16624    
MARGINSMacroscopic Resid 0.59271   1.80889  0.28246 2.098  0.03587 *  
MARGINSNot evaluable     0.43464   1.54440  0.13990 3.107  0.00189 ** 
MARGINSNo surg           0.74715   2.11098  0.09374 7.971 1.55e-15 ***
MARGINSUnknown           0.60737   1.83560  0.11350 5.351 8.73e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                         exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS         1.400     0.7142    0.9481     2.068
MARGINSMicroscopic Resid     1.446     0.6918    0.8580     2.436
MARGINSMacroscopic Resid     1.809     0.5528    1.0399     3.147
MARGINSNot evaluable         1.544     0.6475    1.1740     2.032
MARGINSNo surg               2.111     0.4737    1.7567     2.537
MARGINSUnknown               1.836     0.5448    1.4695     2.293

Concordance= 0.534  (se = 0.004 )
Rsquare= 0.009   (max possible= 0.988 )
Likelihood ratio test= 92.95  on 6 df,   p=0
Wald test            = 77.38  on 6 df,   p=1.243e-14
Score (logrank) test = 80.26  on 6 df,   p=3.109e-15
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  MARGINS

Margins Yes/No

#uni_var(test_var = "MARGINS_YN", data_imp = data)

30 Day Readmission

uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
   
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                                               n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 10284   2614     NA   158.3      NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same      37     12     NA    29.8      NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same        58     22     78    54.1      NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same           1      0     NA      NA      NA
READM_HOSP_30_DAYS_F=9                       227     71     NA   124.9      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   8241     813    0.916 0.00282        0.910        0.922
   24   6882     520    0.855 0.00369        0.848        0.862
   36   5634     368    0.806 0.00427        0.798        0.815
   48   4584     263    0.766 0.00473        0.757        0.775
   60   3694     187    0.732 0.00513        0.722        0.742
  120    827     413    0.599 0.00769        0.584        0.614

                READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     26       8    0.774  0.0706        0.647        0.925
   24     20       1    0.743  0.0743        0.611        0.904
   36     14       3    0.631  0.0866        0.483        0.826
   48     10       0    0.631  0.0866        0.483        0.826
   60      5       0    0.631  0.0866        0.483        0.826
  120      1       0    0.631  0.0866        0.483        0.826

                READM_HOSP_30_DAYS_F=Plan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     46       7    0.874  0.0448        0.790        0.966
   24     38       6    0.759  0.0584        0.653        0.883
   36     32       3    0.697  0.0636        0.583        0.834
   48     26       1    0.674  0.0656        0.557        0.816
   60     15       3    0.580  0.0761        0.449        0.750
  120      3       2    0.464  0.0953        0.310        0.694

                READM_HOSP_30_DAYS_F=PlanUnplan_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1

                READM_HOSP_30_DAYS_F=9 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    185      19    0.909  0.0198        0.871        0.949
   24    155      16    0.827  0.0267        0.776        0.881
   36    133       9    0.775  0.0301        0.719        0.837
   48    119       5    0.746  0.0317        0.686        0.810
   60    100      10    0.681  0.0349        0.616        0.753
  120     34      10    0.581  0.0435        0.502        0.673




   
## Univariable Cox Proportional Hazard Model for:  READM_HOSP_30_DAYS_F
Loglik converged before variable  3 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

  n= 10607, number of events= 2719 

                                              coef  exp(coef)   se(coef)      z Pr(>|z|)  
READM_HOSP_30_DAYS_FUnplan_Readmit_Same  5.350e-01  1.707e+00  2.894e-01  1.849   0.0645 .
READM_HOSP_30_DAYS_FPlan_Readmit_Same    4.746e-01  1.607e+00  2.141e-01  2.216   0.0267 *
READM_HOSP_30_DAYS_FPlanUnplan_Same     -9.995e+00  4.562e-05  2.706e+02 -0.037   0.9705  
READM_HOSP_30_DAYS_F9                    8.541e-02  1.089e+00  1.203e-01  0.710   0.4779  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                        exp(coef) exp(-coef)  lower .95  upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 1.707e+00  5.857e-01  9.683e-01  3.011e+00
READM_HOSP_30_DAYS_FPlan_Readmit_Same   1.607e+00  6.221e-01  1.056e+00  2.446e+00
READM_HOSP_30_DAYS_FPlanUnplan_Same     4.562e-05  2.192e+04 1.973e-235 1.054e+226
READM_HOSP_30_DAYS_F9                   1.089e+00  9.181e-01  8.603e-01  1.379e+00

Concordance= 0.504  (se = 0.002 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 8.12  on 4 df,   p=0.08718
Wald test            = 8.71  on 4 df,   p=0.06866
Score (logrank) test = 9.19  on 4 df,   p=0.05659
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  READM_HOSP_30_DAYS_F

Radiation Type

uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
   
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                                              n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None                   7970   1928     NA   158.3      NA
RX_SUMM_RADIATION_F=Beam Radiation         2495    754  150.1   136.1      NA
RX_SUMM_RADIATION_F=Radioactive Implants     26      5     NA    58.2      NA
RX_SUMM_RADIATION_F=Radioisotopes             1      1   90.8      NA      NA
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes    1      0     NA      NA      NA
RX_SUMM_RADIATION_F=Radiation, NOS           52     16  113.5    89.4      NA
RX_SUMM_RADIATION_F=Unknown                  62     15  126.8    79.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                RX_SUMM_RADIATION_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6252     651    0.913 0.00328        0.906        0.919
   24   5243     352    0.859 0.00416        0.850        0.867
   36   4281     262    0.813 0.00481        0.803        0.822
   48   3474     193    0.773 0.00536        0.763        0.784
   60   2755     147    0.737 0.00587        0.726        0.749
  120    620     289    0.609 0.00895        0.591        0.626

                RX_SUMM_RADIATION_F=Beam Radiation 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2128     189    0.921 0.00549        0.911        0.932
   24   1746     184    0.838 0.00773        0.823        0.853
   36   1443     117    0.778 0.00892        0.761        0.796
   48   1199      71    0.738 0.00968        0.719        0.757
   60   1013      49    0.706 0.01027        0.686        0.726
  120    236     128    0.572 0.01417        0.545        0.601

                RX_SUMM_RADIATION_F=Radioactive Implants 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       1    0.958  0.0408        0.882        1.000
   24     19       2    0.867  0.0716        0.737        1.000
   36     15       1    0.819  0.0823        0.673        0.997
   48     12       0    0.819  0.0823        0.673        0.997
   60      3       1    0.682  0.1422        0.454        1.000
  120      1       0    0.682  0.1422        0.454        1.000

                RX_SUMM_RADIATION_F=Radioisotopes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                RX_SUMM_RADIATION_F=Beam + Imp or Isotopes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                RX_SUMM_RADIATION_F=Radiation, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     45       3    0.939  0.0342        0.874        1.000
   24     43       1    0.918  0.0395        0.843        0.998
   36     35       2    0.870  0.0497        0.778        0.973
   48     23       4    0.759  0.0679        0.637        0.904
   60     20       1    0.724  0.0730        0.594        0.882
  120      4       4    0.440  0.1307        0.246        0.788

                RX_SUMM_RADIATION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     49       3    0.943  0.0317        0.883        1.000
   24     43       4    0.865  0.0476        0.776        0.963
   36     38       1    0.844  0.0507        0.750        0.950
   48     30       1    0.820  0.0547        0.720        0.935
   60     21       2    0.758  0.0658        0.639        0.899
  120      4       3    0.634  0.0857        0.486        0.826




   
## Univariable Cox Proportional Hazard Model for:  RX_SUMM_RADIATION_F
Loglik converged before variable  4 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

  n= 10607, number of events= 2719 

                                                coef  exp(coef)   se(coef)      z Pr(>|z|)   
RX_SUMM_RADIATION_FBeam Radiation          1.304e-01  1.139e+00  4.296e-02  3.034  0.00241 **
RX_SUMM_RADIATION_FRadioactive Implants   -1.562e-01  8.554e-01  4.478e-01 -0.349  0.72722   
RX_SUMM_RADIATION_FRadioisotopes           9.102e-01  2.485e+00  1.000e+00  0.910  0.36286   
RX_SUMM_RADIATION_FBeam + Imp or Isotopes -1.097e+01  1.726e-05  3.737e+02 -0.029  0.97659   
RX_SUMM_RADIATION_FRadiation, NOS          1.089e-01  1.115e+00  2.510e-01  0.434  0.66457   
RX_SUMM_RADIATION_FUnknown                -9.479e-03  9.906e-01  2.592e-01 -0.037  0.97083   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                          exp(coef) exp(-coef)  lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation         1.139e+00  8.778e-01  1.047e+00     1.239
RX_SUMM_RADIATION_FRadioactive Implants   8.554e-01  1.169e+00  3.556e-01     2.058
RX_SUMM_RADIATION_FRadioisotopes          2.485e+00  4.024e-01  3.498e-01    17.651
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 1.726e-05  5.793e+04 1.482e-323       Inf
RX_SUMM_RADIATION_FRadiation, NOS         1.115e+00  8.969e-01  6.817e-01     1.824
RX_SUMM_RADIATION_FUnknown                9.906e-01  1.010e+00  5.960e-01     1.646

Concordance= 0.51  (se = 0.005 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 10.78  on 6 df,   p=0.09542
Wald test            = 10.27  on 6 df,   p=0.1138
Score (logrank) test = 10.76  on 6 df,   p=0.09593
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_SUMM_RADIATION_F

Lymphovascular Invasion

#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)

Endoscopic/Robotic

uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
   
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

   4687 observations deleted due to missingness 
                                             n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg          5006   1000     NA    91.7      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap           21      3   80.1      NA      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open    2      1   41.9      NA      NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown      800    115   93.9    93.9      NA
RX_HOSP_SURG_APPR_2010_F=Unknown            91     45   21.5    14.9      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

4687 observations deleted due to missingness 
                RX_HOSP_SURG_APPR_2010_F=No_Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3882     367    0.921 0.00397        0.913        0.929
   24   3043     237    0.860 0.00532        0.850        0.871
   36   2199     171    0.806 0.00640        0.794        0.819
   48   1462     107    0.760 0.00744        0.746        0.775
   60    889      69    0.715 0.00878        0.698        0.733

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       0    1.000   0.000        1.000            1
   24     14       0    1.000   0.000        1.000            1
   36     11       0    1.000   0.000        1.000            1
   48      8       2    0.818   0.116        0.619            1
   60      4       0    0.818   0.116        0.619            1

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1

                RX_HOSP_SURG_APPR_2010_F=Open_Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    637      47    0.936 0.00907        0.918        0.954
   24    514      27    0.893 0.01185        0.870        0.916
   36    377      14    0.865 0.01361        0.839        0.892
   48    280      10    0.840 0.01543        0.810        0.870
   60    181       7    0.814 0.01779        0.780        0.850

                RX_HOSP_SURG_APPR_2010_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     51      27    0.677  0.0516        0.583        0.786
   24     25      15    0.456  0.0590        0.354        0.588
   36     18       1    0.437  0.0596        0.335        0.571
   48     13       1    0.413  0.0610        0.309        0.552
   60      8       0    0.413  0.0610        0.309        0.552




   
## Univariable Cox Proportional Hazard Model for:  RX_HOSP_SURG_APPR_2010_F
X matrix deemed to be singular; variable 1 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

  n= 5920, number of events= 1164 
   (4687 observations deleted due to missingness)

                                             coef exp(coef) se(coef)      z Pr(>|z|)    
RX_HOSP_SURG_APPR_2010_FRobot_Assist           NA        NA  0.00000     NA       NA    
RX_HOSP_SURG_APPR_2010_FRobot_to_Open          NA        NA  0.00000     NA       NA    
RX_HOSP_SURG_APPR_2010_FEndo_Lap         -0.44921   0.63813  0.57823 -0.777    0.437    
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open  1.07107   2.91851  1.00060  1.070    0.284    
RX_HOSP_SURG_APPR_2010_FOpen_Unknown     -0.40061   0.66991  0.09853 -4.066 4.78e-05 ***
RX_HOSP_SURG_APPR_2010_FUnknown           1.31509   3.72507  0.15265  8.615  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                         exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist            NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FRobot_to_Open           NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap            0.6381     1.5671    0.2055    1.9820
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open    2.9185     0.3426    0.4106   20.7432
RX_HOSP_SURG_APPR_2010_FOpen_Unknown        0.6699     1.4927    0.5523    0.8126
RX_HOSP_SURG_APPR_2010_FUnknown             3.7251     0.2685    2.7619    5.0242

Concordance= 0.538  (se = 0.006 )
Rsquare= 0.013   (max possible= 0.959 )
Likelihood ratio test= 74.56  on 4 df,   p=2.442e-15
Wald test            = 97.52  on 4 df,   p=0
Score (logrank) test = 111.6  on 4 df,   p=0
Removed 3 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_HOSP_SURG_APPR_2010_F

Surgery Radiation Sequence

uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
   
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                                          n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone                1648    309     NA      NA      NA
SURG_RAD_SEQ=Surg then Rad              630    127     NA      NA      NA
SURG_RAD_SEQ=Rad Alone                 1900    633  130.6   112.3      NA
SURG_RAD_SEQ=No Treatment              6259   1585     NA   158.3      NA
SURG_RAD_SEQ=Other                      158     59  117.8    69.3      NA
SURG_RAD_SEQ=Rad before and after Surg    3      2  134.3    36.2      NA
SURG_RAD_SEQ=Rad then Surg                9      4   60.8    25.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                SURG_RAD_SEQ=Surg Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1333      96    0.937 0.00619        0.925        0.950
   24   1135      58    0.894 0.00809        0.879        0.910
   36    953      31    0.868 0.00910        0.851        0.886
   48    801      37    0.833 0.01046        0.812        0.853
   60    635      26    0.803 0.01160        0.781        0.826
  120    133      56    0.690 0.01834        0.655        0.727

                SURG_RAD_SEQ=Surg then Rad 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    566      24    0.961 0.00791        0.945        0.976
   24    491      32    0.904 0.01227        0.880        0.928
   36    418      20    0.864 0.01453        0.836        0.893
   48    366       8    0.847 0.01547        0.817        0.878
   60    315      11    0.821 0.01693        0.788        0.855
  120     90      27    0.720 0.02400        0.674        0.769

                SURG_RAD_SEQ=Rad Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1594     166    0.909 0.00672        0.896        0.923
   24   1292     148    0.820 0.00923        0.802        0.839
   36   1057      98    0.755 0.01061        0.734        0.776
   48    851      66    0.704 0.01159        0.682        0.727
   60    709      40    0.669 0.01227        0.645        0.693
  120    143     104    0.515 0.01738        0.482        0.550

                SURG_RAD_SEQ=No Treatment 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   4887     535    0.909 0.00377        0.901        0.916
   24   4081     291    0.852 0.00479        0.842        0.861
   36   3303     229    0.801 0.00557        0.790        0.812
   48   2650     154    0.760 0.00618        0.748        0.772
   60   2105     117    0.723 0.00675        0.710        0.737
  120    480     230    0.591 0.01022        0.572        0.612

                SURG_RAD_SEQ=Other 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    108      26    0.815  0.0328        0.753        0.882
   24     88      13    0.714  0.0390        0.641        0.794
   36     78       3    0.688  0.0403        0.613        0.772
   48     68       3    0.660  0.0417        0.583        0.747
   60     47       6    0.598  0.0449        0.516        0.693
  120     17       7    0.481  0.0549        0.384        0.601

                SURG_RAD_SEQ=Rad before and after Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       0    1.000   0.000          1.0            1
   24      3       0    1.000   0.000          1.0            1
   36      3       0    1.000   0.000          1.0            1
   48      2       1    0.667   0.272          0.3            1
   60      2       0    0.667   0.272          0.3            1
  120      2       0    0.667   0.272          0.3            1

                SURG_RAD_SEQ=Rad then Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       0    1.000   0.000        1.000            1
   24      6       1    0.875   0.117        0.673            1
   36      2       2    0.583   0.186        0.313            1
   48      2       0    0.583   0.186        0.313            1
   60      1       0    0.583   0.186        0.313            1




   
## Univariable Cox Proportional Hazard Model for:  SURG_RAD_SEQ

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

  n= 10607, number of events= 2719 

                                          coef exp(coef) se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad             -0.09627   0.90822  0.10544 -0.913   0.3612    
SURG_RAD_SEQRad Alone                  0.58129   1.78834  0.06940  8.376  < 2e-16 ***
SURG_RAD_SEQNo Treatment               0.36684   1.44317  0.06219  5.898 3.67e-09 ***
SURG_RAD_SEQOther                      0.83037   2.29416  0.14209  5.844 5.10e-09 ***
SURG_RAD_SEQRad before and after Surg  0.76765   2.15469  0.70950  1.082   0.2793    
SURG_RAD_SEQRad then Surg              1.25753   3.51672  0.50338  2.498   0.0125 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                0.9082     1.1011    0.7386     1.117
SURG_RAD_SEQRad Alone                    1.7883     0.5592    1.5609     2.049
SURG_RAD_SEQNo Treatment                 1.4432     0.6929    1.2776     1.630
SURG_RAD_SEQOther                        2.2942     0.4359    1.7365     3.031
SURG_RAD_SEQRad before and after Surg    2.1547     0.4641    0.5364     8.656
SURG_RAD_SEQRad then Surg                3.5167     0.2844    1.3112     9.432

Concordance= 0.552  (se = 0.005 )
Rsquare= 0.011   (max possible= 0.988 )
Likelihood ratio test= 118.3  on 6 df,   p=0
Wald test            = 114  on 6 df,   p=0
Score (logrank) test = 116.8  on 6 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURG_RAD_SEQ

Surgery Yes/No

uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
   
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                  n events median 0.95LCL 0.95UCL
SURGERY_YN=No  8199   2234  158.3   141.7      NA
SURGERY_YN=Ukn   99     41   91.7    53.9      NA
SURGERY_YN=Yes 2309    444     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                SURGERY_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6503     710    0.908 0.00330        0.902        0.914
   24   5386     445    0.842 0.00428        0.834        0.851
   36   4370     327    0.788 0.00495        0.778        0.798
   48   3507     221    0.745 0.00547        0.734        0.756
   60   2817     157    0.709 0.00592        0.697        0.720
  120    620     334    0.570 0.00882        0.553        0.588

                SURGERY_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     68      17    0.807  0.0422        0.728        0.894
   24     58       7    0.722  0.0484        0.633        0.823
   36     54       3    0.684  0.0506        0.592        0.791
   48     51       2    0.658  0.0519        0.564        0.768
   60     37       5    0.591  0.0546        0.493        0.708
  120     20       6    0.476  0.0613        0.370        0.613

                SURGERY_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1928     120    0.945 0.00491        0.935        0.954
   24   1652      91    0.898 0.00669        0.885        0.911
   36   1390      53    0.867 0.00768        0.852        0.882
   48   1182      46    0.837 0.00861        0.820        0.854
   60    960      38    0.808 0.00952        0.789        0.827
  120    225      85    0.699 0.01444        0.671        0.728




   
## Univariable Cox Proportional Hazard Model for:  SURGERY_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

  n= 10607, number of events= 2719 

                  coef exp(coef) se(coef)      z Pr(>|z|)    
SURGERY_YNUkn  0.36645   1.44260  0.15768  2.324   0.0201 *  
SURGERY_YNYes -0.45245   0.63607  0.05198 -8.704   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn    1.4426     0.6932    1.0591    1.9650
SURGERY_YNYes    0.6361     1.5722    0.5745    0.7043

Concordance= 0.54  (se = 0.004 )
Rsquare= 0.009   (max possible= 0.988 )
Likelihood ratio test= 90.89  on 2 df,   p=0
Wald test            = 83.66  on 2 df,   p=0
Score (logrank) test = 85.25  on 2 df,   p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURGERY_YN

Radiation Yes/No

uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
   
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

   69 observations deleted due to missingness 
                    n events median 0.95LCL 0.95UCL
RADIATION_YN=No  7963   1921     NA     158      NA
RADIATION_YN=Yes 2575    776    150     136      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

69 observations deleted due to missingness 
                RADIATION_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   6252     644    0.914 0.00326        0.907        0.920
   24   5243     352    0.859 0.00416        0.851        0.868
   36   4281     262    0.814 0.00481        0.804        0.823
   48   3474     193    0.774 0.00535        0.763        0.784
   60   2755     147    0.738 0.00587        0.727        0.750
  120    620     289    0.609 0.00896        0.592        0.627

                RADIATION_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2198     193    0.922 0.00538        0.912        0.933
   24   1810     187    0.840 0.00757        0.825        0.855
   36   1495     120    0.781 0.00874        0.764        0.798
   48   1236      75    0.739 0.00951        0.721        0.758
   60   1038      51    0.707 0.01012        0.687        0.727
  120    241     133    0.570 0.01412        0.543        0.598




   
## Univariable Cox Proportional Hazard Model for:  RADIATION_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

  n= 10538, number of events= 2697 
   (69 observations deleted due to missingness)

                   coef exp(coef) se(coef)     z Pr(>|z|)   
RADIATION_YNYes 0.13141   1.14044  0.04255 3.089  0.00201 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes      1.14     0.8769     1.049      1.24

Concordance= 0.509  (se = 0.005 )
Rsquare= 0.001   (max possible= 0.988 )
Likelihood ratio test= 9.36  on 1 df,   p=0.002218
Wald test            = 9.54  on 1 df,   p=0.00201
Score (logrank) test = 9.55  on 1 df,   p=0.001995





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RADIATION_YN

Chemo Yes/No

uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
   
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                n events median 0.95LCL 0.95UCL
CHEMO_YN=No  7139   1376     NA      NA      NA
CHEMO_YN=Yes 3109   1271   87.9    78.1    97.6
CHEMO_YN=Ukn  359     72     NA   138.3      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                CHEMO_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   5826     383    0.943 0.00283        0.938        0.949
   24   4980     234    0.903 0.00373        0.896        0.910
   36   4096     207    0.863 0.00449        0.854        0.872
   48   3344     148    0.829 0.00510        0.819        0.839
   60   2698     109    0.800 0.00565        0.789        0.811
  120    622     264    0.670 0.00922        0.653        0.689

                CHEMO_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   2384     447    0.850 0.00657        0.837        0.863
   24   1861     298    0.738 0.00830        0.722        0.755
   36   1498     169    0.667 0.00912        0.650        0.685
   48   1211     111    0.615 0.00968        0.596        0.634
   60    973      80    0.571 0.01014        0.552        0.592
  120    204     149    0.435 0.01319        0.410        0.462

                CHEMO_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    289      17    0.947  0.0124        0.923        0.972
   24    255      11    0.911  0.0161        0.880        0.943
   36    220       7    0.884  0.0185        0.849        0.921
   48    185      10    0.843  0.0218        0.801        0.887
   60    143      11    0.789  0.0258        0.740        0.841
  120     39      12    0.682  0.0382        0.611        0.762




   
## Univariable Cox Proportional Hazard Model for:  CHEMO_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

  n= 10607, number of events= 2719 

                coef exp(coef) se(coef)      z Pr(>|z|)    
CHEMO_YNYes 0.872831  2.393677 0.038944 22.413   <2e-16 ***
CHEMO_YNUkn 0.009072  1.009113 0.120903  0.075     0.94    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes     2.394     0.4178    2.2178     2.584
CHEMO_YNUkn     1.009     0.9910    0.7962     1.279

Concordance= 0.609  (se = 0.005 )
Rsquare= 0.045   (max possible= 0.988 )
Likelihood ratio test= 489.8  on 2 df,   p=0
Wald test            = 514  on 2 df,   p=0
Score (logrank) test = 547.3  on 2 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CHEMO_YN

Treatment Yes/No

uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
   
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

   359 observations deleted due to missingness 
               n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 3929    714     NA      NA      NA
Tx_YN=TRUE  6319   1933    145     134      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

359 observations deleted due to missingness 
                Tx_YN=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   3125     225    0.939 0.00394        0.931        0.947
   24   2673     105    0.906 0.00497        0.896        0.916
   36   2172     101    0.869 0.00597        0.857        0.881
   48   1738      76    0.835 0.00687        0.822        0.849
   60   1373      60    0.803 0.00776        0.788        0.819
  120    320     134    0.667 0.01334        0.642        0.694

                Tx_YN=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   5085     605    0.899 0.00389        0.892        0.907
   24   4168     427    0.820 0.00511        0.810        0.830
   36   3422     275    0.763 0.00580        0.751        0.774
   48   2817     183    0.719 0.00630        0.707        0.732
   60   2298     129    0.684 0.00672        0.671        0.697
  120    506     279    0.555 0.00933        0.537        0.573




   
## Univariable Cox Proportional Hazard Model for:  Tx_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

  n= 10248, number of events= 2647 
   (359 observations deleted due to missingness)

            coef exp(coef) se(coef)     z Pr(>|z|)    
Tx_YNTRUE 0.5157    1.6748   0.0438 11.77   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

          exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE     1.675     0.5971     1.537     1.825

Concordance= 0.559  (se = 0.005 )
Rsquare= 0.014   (max possible= 0.988 )
Likelihood ratio test= 148.8  on 1 df,   p=0
Wald test            = 138.6  on 1 df,   p=0
Score (logrank) test = 141.7  on 1 df,   p=0





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  Tx_YN

Metastases at Dx

uni_var(test_var = "mets_at_dx_F", data_imp = data)
_________________________________________________
   
## mets_at_dx_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                       n events median 0.95LCL 0.95UCL
mets_at_dx_F=FALSE 10588   2703     NA  158.32      NA
mets_at_dx_F=TRUE     19     16   14.4    6.64    37.5

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                mets_at_dx_F=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   8490     838    0.916 0.00279        0.910        0.921
   24   7090     540    0.854 0.00364        0.847        0.862
   36   5811     381    0.806 0.00421        0.797        0.814
   48   4740     267    0.766 0.00466        0.757        0.775
   60   3814     200    0.731 0.00506        0.721        0.741
  120    865     425    0.599 0.00754        0.585        0.614

                mets_at_dx_F=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      9       9    0.513   0.117       0.3281        0.803
   24      6       3    0.342   0.112       0.1799        0.651
   36      3       2    0.214   0.101       0.0845        0.541




   
## Univariable Cox Proportional Hazard Model for:  mets_at_dx_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

  n= 10607, number of events= 2719 

                   coef exp(coef) se(coef)     z Pr(>|z|)    
mets_at_dx_FTRUE 2.0803    8.0070   0.2512 8.282   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                 exp(coef) exp(-coef) lower .95 upper .95
mets_at_dx_FTRUE     8.007     0.1249     4.894      13.1

Concordance= 0.503  (se = 0 )
Rsquare= 0.004   (max possible= 0.988 )
Likelihood ratio test= 38.45  on 1 df,   p=5.615e-10
Wald test            = 68.59  on 1 df,   p=1.11e-16
Score (logrank) test = 97.19  on 1 df,   p=0





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  mets_at_dx_F

Tumor specific Variables

Node Size

Cox Proportional Hazard Ratio

Model #1

Full analysis

model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
                     ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
                     data = data)
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + 
    INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + 
    EDUCATION_F, data = data)

  n= 8596, number of events= 2505 
   (2011 observations deleted due to missingness)

                                                  coef exp(coef)  se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad                    -0.183495  0.832356  0.110571 -1.660  0.09701 .  
SURG_RAD_SEQRad Alone                         0.293231  1.340752  0.074138  3.955 7.65e-05 ***
SURG_RAD_SEQNo Treatment                      0.330102  1.391111  0.066155  4.990 6.04e-07 ***
SURG_RAD_SEQOther                             0.791889  2.207563  0.150024  5.278 1.30e-07 ***
SURG_RAD_SEQRad before and after Surg         1.053763  2.868425  0.717837  1.468  0.14211    
SURG_RAD_SEQRad then Surg                     1.158605  3.185486  0.507675  2.282  0.02248 *  
INSURANCE_FNone                               0.554383  1.740867  0.130177  4.259 2.06e-05 ***
INSURANCE_FMedicaid                           0.713597  2.041321  0.102865  6.937 4.00e-12 ***
INSURANCE_FMedicare                           0.289526  1.335794  0.056976  5.082 3.74e-07 ***
INSURANCE_FOther Government                   0.195108  1.215442  0.188105  1.037  0.29963    
INSURANCE_FUnknown                            0.045156  1.046192  0.134621  0.335  0.73730    
AGE                                           0.052972  1.054401  0.002216 23.907  < 2e-16 ***
SEX_FFemale                                  -0.257613  0.772895  0.041645 -6.186 6.17e-10 ***
RACE_FBlack                                   0.271642  1.312118  0.060840  4.465 8.01e-06 ***
RACE_FOther/Unk                              -0.297468  0.742696  0.137091 -2.170  0.03002 *  
RACE_FAsian                                   0.045933  1.047005  0.146187  0.314  0.75336    
INCOME_F$38,000 - $47,999                    -0.005706  0.994311  0.068659 -0.083  0.93377    
INCOME_F$48,000 - $62,999                     0.004169  1.004178  0.073765  0.057  0.95493    
INCOME_F$63,000 +                            -0.025892  0.974440  0.085177 -0.304  0.76114    
U_R_FUrban                                    0.005681  1.005697  0.063094  0.090  0.92825    
U_R_FRural                                   -0.027776  0.972606  0.161282 -0.172  0.86327    
FACILITY_TYPE_FComprehensive Comm Ca Program  0.014430  1.014534  0.096901  0.149  0.88163    
FACILITY_TYPE_FAcademic/Research Program     -0.149979  0.860726  0.092220 -1.626  0.10388    
FACILITY_TYPE_FIntegrated Network Ca Program -0.008064  0.991968  0.116627 -0.069  0.94487    
FACILITY_LOCATION_FMiddle Atlantic           -0.130618  0.877553  0.090854 -1.438  0.15053    
FACILITY_LOCATION_FSouth Atlantic            -0.109552  0.896235  0.091146 -1.202  0.22939    
FACILITY_LOCATION_FEast North Central        -0.072717  0.929863  0.092932 -0.782  0.43393    
FACILITY_LOCATION_FEast South Central        -0.025457  0.974864  0.114931 -0.222  0.82470    
FACILITY_LOCATION_FWest North Central         0.026372  1.026723  0.111119  0.237  0.81240    
FACILITY_LOCATION_FWest South Central         0.096659  1.101485  0.118236  0.818  0.41364    
FACILITY_LOCATION_FMountain                  -0.160768  0.851490  0.126945 -1.266  0.20536    
FACILITY_LOCATION_FPacific                   -0.076405  0.926441  0.102613 -0.745  0.45652    
EDUCATION_F13 - 20.9%                        -0.052519  0.948836  0.066812 -0.786  0.43183    
EDUCATION_F7 - 12.9%                         -0.142440  0.867239  0.074311 -1.917  0.05526 .  
EDUCATION_FLess than 7%                      -0.282180  0.754138  0.088017 -3.206  0.00135 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                             exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                       0.8324     1.2014    0.6702    1.0338
SURG_RAD_SEQRad Alone                           1.3408     0.7458    1.1594    1.5504
SURG_RAD_SEQNo Treatment                        1.3911     0.7189    1.2219    1.5837
SURG_RAD_SEQOther                               2.2076     0.4530    1.6452    2.9622
SURG_RAD_SEQRad before and after Surg           2.8684     0.3486    0.7025   11.7130
SURG_RAD_SEQRad then Surg                       3.1855     0.3139    1.1777    8.6161
INSURANCE_FNone                                 1.7409     0.5744    1.3488    2.2468
INSURANCE_FMedicaid                             2.0413     0.4899    1.6686    2.4973
INSURANCE_FMedicare                             1.3358     0.7486    1.1947    1.4936
INSURANCE_FOther Government                     1.2154     0.8227    0.8407    1.7573
INSURANCE_FUnknown                              1.0462     0.9558    0.8036    1.3621
AGE                                             1.0544     0.9484    1.0498    1.0590
SEX_FFemale                                     0.7729     1.2938    0.7123    0.8386
RACE_FBlack                                     1.3121     0.7621    1.1646    1.4783
RACE_FOther/Unk                                 0.7427     1.3464    0.5677    0.9716
RACE_FAsian                                     1.0470     0.9551    0.7862    1.3944
INCOME_F$38,000 - $47,999                       0.9943     1.0057    0.8691    1.1375
INCOME_F$48,000 - $62,999                       1.0042     0.9958    0.8690    1.1604
INCOME_F$63,000 +                               0.9744     1.0262    0.8246    1.1515
U_R_FUrban                                      1.0057     0.9943    0.8887    1.1381
U_R_FRural                                      0.9726     1.0282    0.7090    1.3342
FACILITY_TYPE_FComprehensive Comm Ca Program    1.0145     0.9857    0.8390    1.2267
FACILITY_TYPE_FAcademic/Research Program        0.8607     1.1618    0.7184    1.0312
FACILITY_TYPE_FIntegrated Network Ca Program    0.9920     1.0081    0.7893    1.2467
FACILITY_LOCATION_FMiddle Atlantic              0.8776     1.1395    0.7344    1.0486
FACILITY_LOCATION_FSouth Atlantic               0.8962     1.1158    0.7496    1.0715
FACILITY_LOCATION_FEast North Central           0.9299     1.0754    0.7750    1.1156
FACILITY_LOCATION_FEast South Central           0.9749     1.0258    0.7782    1.2212
FACILITY_LOCATION_FWest North Central           1.0267     0.9740    0.8258    1.2766
FACILITY_LOCATION_FWest South Central           1.1015     0.9079    0.8736    1.3887
FACILITY_LOCATION_FMountain                     0.8515     1.1744    0.6639    1.0920
FACILITY_LOCATION_FPacific                      0.9264     1.0794    0.7577    1.1328
EDUCATION_F13 - 20.9%                           0.9488     1.0539    0.8324    1.0816
EDUCATION_F7 - 12.9%                            0.8672     1.1531    0.7497    1.0032
EDUCATION_FLess than 7%                         0.7541     1.3260    0.6346    0.8961

Concordance= 0.709  (se = 0.006 )
Rsquare= 0.157   (max possible= 0.993 )
Likelihood ratio test= 1468  on 35 df,   p=0
Wald test            = 1370  on 35 df,   p=0
Score (logrank) test = 1479  on 35 df,   p=0

Summary of Model

model_one %>%
        tidy(., exponentiate = TRUE) %>%
        select(term, estimate, conf.low, conf.high, p.value) %>%
        rename(Variable = term,
               Hazard_Ratio = estimate) %>%
        tbl_df %>%
        print(n = nrow(.))

Prediction Logistic Regression Models

Surgery

no_Ukns <- data %>%
  filter(SURGERY_YN != "Ukn") %>% 
  droplevels() %>% 
  mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Ukns)
summary(fit_surg)

Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F + 
    FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP, 
    data = no_Ukns)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.4763  -0.2283  -0.1847  -0.1274   0.9382  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                   0.331234   0.033484   9.892  < 2e-16 ***
AGE_F(54,64]                                 -0.023625   0.011750  -2.011 0.044397 *  
AGE_F(64,74]                                 -0.045829   0.012315  -3.721 0.000199 ***
AGE_F(74,100]                                -0.068805   0.013144  -5.235 1.69e-07 ***
SEX_FFemale                                   0.014941   0.008983   1.663 0.096314 .  
RACE_FBlack                                  -0.024934   0.013294  -1.876 0.060751 .  
RACE_FOther/Unk                              -0.007248   0.024765  -0.293 0.769796    
RACE_FAsian                                   0.018603   0.028730   0.648 0.517314    
INCOME_F$38,000 - $47,999                    -0.001819   0.016250  -0.112 0.910877    
INCOME_F$48,000 - $62,999                     0.030243   0.017093   1.769 0.076871 .  
INCOME_F$63,000 +                             0.039280   0.019272   2.038 0.041564 *  
U_R_FUrban                                   -0.027545   0.014850  -1.855 0.063638 .  
U_R_FRural                                   -0.029120   0.039379  -0.739 0.459628    
FACILITY_TYPE_FComprehensive Comm Ca Program -0.049377   0.023967  -2.060 0.039406 *  
FACILITY_TYPE_FAcademic/Research Program     -0.128983   0.022488  -5.736 1.01e-08 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.043440   0.027970  -1.553 0.120433    
FACILITY_LOCATION_FMiddle Atlantic            0.002350   0.019793   0.119 0.905492    
FACILITY_LOCATION_FSouth Atlantic             0.004384   0.020575   0.213 0.831271    
FACILITY_LOCATION_FEast North Central         0.024834   0.020804   1.194 0.232620    
FACILITY_LOCATION_FEast South Central         0.034065   0.026357   1.292 0.196243    
FACILITY_LOCATION_FWest North Central         0.013697   0.025103   0.546 0.585334    
FACILITY_LOCATION_FWest South Central         0.029954   0.026445   1.133 0.257371    
FACILITY_LOCATION_FMountain                   0.134935   0.026869   5.022 5.22e-07 ***
FACILITY_LOCATION_FPacific                   -0.034005   0.022730  -1.496 0.134694    
EDUCATION_F13 - 20.9%                        -0.009671   0.015711  -0.616 0.538214    
EDUCATION_F7 - 12.9%                         -0.011591   0.017152  -0.676 0.499188    
EDUCATION_FLess than 7%                      -0.035783   0.019664  -1.820 0.068834 .  
EXPN_GROUPPre-Expansion                      -0.001719   0.012758  -0.135 0.892836    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.165531)

    Null deviance: 1433.9  on 8515  degrees of freedom
Residual deviance: 1405.0  on 8488  degrees of freedom
  (1992 observations deleted due to missingness)
AIC: 8880.5

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.3926851 1.3042201 1.4871507
AGE_F(54,64]                                  0.9766521 0.9544172 0.9994049
AGE_F(64,74]                                  0.9552050 0.9324251 0.9785415
AGE_F(74,100]                                 0.9335084 0.9097670 0.9578694
SEX_FFemale                                   1.0150530 0.9973374 1.0330834
RACE_FBlack                                   0.9753741 0.9502876 1.0011229
RACE_FOther/Unk                               0.9927786 0.9457411 1.0421557
RACE_FAsian                                   1.0187771 0.9629958 1.0777896
INCOME_F$38,000 - $47,999                     0.9981827 0.9668926 1.0304855
INCOME_F$48,000 - $62,999                     1.0307048 0.9967472 1.0658192
INCOME_F$63,000 +                             1.0400618 1.0015083 1.0800995
U_R_FUrban                                    0.9728304 0.9449243 1.0015607
U_R_FRural                                    0.9712995 0.8991533 1.0492345
FACILITY_TYPE_FComprehensive Comm Ca Program  0.9518222 0.9081455 0.9975995
FACILITY_TYPE_FAcademic/Research Program      0.8789891 0.8410879 0.9185981
FACILITY_TYPE_FIntegrated Network Ca Program  0.9574901 0.9064140 1.0114444
FACILITY_LOCATION_FMiddle Atlantic            1.0023528 0.9642118 1.0420026
FACILITY_LOCATION_FSouth Atlantic             1.0043936 0.9646966 1.0457242
FACILITY_LOCATION_FEast North Central         1.0251449 0.9841856 1.0678087
FACILITY_LOCATION_FEast South Central         1.0346518 0.9825595 1.0895058
FACILITY_LOCATION_FWest North Central         1.0137912 0.9651187 1.0649184
FACILITY_LOCATION_FWest South Central         1.0304069 0.9783610 1.0852215
FACILITY_LOCATION_FMountain                   1.1444624 1.0857514 1.2063481
FACILITY_LOCATION_FPacific                    0.9665671 0.9244508 1.0106022
EDUCATION_F13 - 20.9%                         0.9903760 0.9603447 1.0213465
EDUCATION_F7 - 12.9%                          0.9884757 0.9557983 1.0222703
EDUCATION_FLess than 7%                       0.9648499 0.9283719 1.0027612
EXPN_GROUPPre-Expansion                       0.9982827 0.9736294 1.0235602

Metastasis at Time of Diagnosis

# limit to those cases where data about expansion status is available (> Age 39, non-ambiguous status states)
fit_mets <- glm(mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Excludes)
summary(fit_mets)

Call:
glm(formula = mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + 
    U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + 
    EXPN_GROUP, data = no_Excludes)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
     0       0       0       0       0  

Coefficients:
                                             Estimate Std. Error t value Pr(>|t|)
(Intercept)                                         0          0      NA       NA
AGE_F(54,64]                                        0          0      NA       NA
AGE_F(64,74]                                        0          0      NA       NA
AGE_F(74,100]                                       0          0      NA       NA
SEX_FFemale                                         0          0      NA       NA
RACE_FBlack                                         0          0      NA       NA
RACE_FOther/Unk                                     0          0      NA       NA
RACE_FAsian                                         0          0      NA       NA
INCOME_F$38,000 - $47,999                           0          0      NA       NA
INCOME_F$48,000 - $62,999                           0          0      NA       NA
INCOME_F$63,000 +                                   0          0      NA       NA
U_R_FUrban                                          0          0      NA       NA
U_R_FRural                                          0          0      NA       NA
FACILITY_TYPE_FComprehensive Comm Ca Program        0          0      NA       NA
FACILITY_TYPE_FAcademic/Research Program            0          0      NA       NA
FACILITY_TYPE_FIntegrated Network Ca Program        0          0      NA       NA
FACILITY_LOCATION_FMiddle Atlantic                  0          0      NA       NA
FACILITY_LOCATION_FSouth Atlantic                   0          0      NA       NA
FACILITY_LOCATION_FEast North Central               0          0      NA       NA
FACILITY_LOCATION_FEast South Central               0          0      NA       NA
FACILITY_LOCATION_FWest North Central               0          0      NA       NA
FACILITY_LOCATION_FWest South Central               0          0      NA       NA
FACILITY_LOCATION_FMountain                         0          0      NA       NA
FACILITY_LOCATION_FPacific                          0          0      NA       NA
EDUCATION_F13 - 20.9%                               0          0      NA       NA
EDUCATION_F7 - 12.9%                                0          0      NA       NA
EDUCATION_FLess than 7%                             0          0      NA       NA
EXPN_GROUPPre-Expansion                             0          0      NA       NA

(Dispersion parameter for gaussian family taken to be 0)

    Null deviance: 0  on 687  degrees of freedom
Residual deviance: 0  on 660  degrees of freedom
  (18 observations deleted due to missingness)
AIC: -Inf

Number of Fisher Scoring iterations: 1
exp(cbind("Odds ratio" = coef(fit_mets), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                           1 1.3042201 1.4871507
AGE_F(54,64]                                          1 0.9544172 0.9994049
AGE_F(64,74]                                          1 0.9324251 0.9785415
AGE_F(74,100]                                         1 0.9097670 0.9578694
SEX_FFemale                                           1 0.9973374 1.0330834
RACE_FBlack                                           1 0.9502876 1.0011229
RACE_FOther/Unk                                       1 0.9457411 1.0421557
RACE_FAsian                                           1 0.9629958 1.0777896
INCOME_F$38,000 - $47,999                             1 0.9668926 1.0304855
INCOME_F$48,000 - $62,999                             1 0.9967472 1.0658192
INCOME_F$63,000 +                                     1 1.0015083 1.0800995
U_R_FUrban                                            1 0.9449243 1.0015607
U_R_FRural                                            1 0.8991533 1.0492345
FACILITY_TYPE_FComprehensive Comm Ca Program          1 0.9081455 0.9975995
FACILITY_TYPE_FAcademic/Research Program              1 0.8410879 0.9185981
FACILITY_TYPE_FIntegrated Network Ca Program          1 0.9064140 1.0114444
FACILITY_LOCATION_FMiddle Atlantic                    1 0.9642118 1.0420026
FACILITY_LOCATION_FSouth Atlantic                     1 0.9646966 1.0457242
FACILITY_LOCATION_FEast North Central                 1 0.9841856 1.0678087
FACILITY_LOCATION_FEast South Central                 1 0.9825595 1.0895058
FACILITY_LOCATION_FWest North Central                 1 0.9651187 1.0649184
FACILITY_LOCATION_FWest South Central                 1 0.9783610 1.0852215
FACILITY_LOCATION_FMountain                           1 1.0857514 1.2063481
FACILITY_LOCATION_FPacific                            1 0.9244508 1.0106022
EDUCATION_F13 - 20.9%                                 1 0.9603447 1.0213465
EDUCATION_F7 - 12.9%                                  1 0.9557983 1.0222703
EDUCATION_FLess than 7%                               1 0.9283719 1.0027612
EXPN_GROUPPre-Expansion                               1 0.9736294 1.0235602
LS0tCnRpdGxlOiAiQ3V0YW5lb3VzIFQtQ2VsbCBMeW1waG9tYSBBbmFseXNpcyAtIEEgUmV2aWV3IG9mIHRoZSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzE2LzIwMTkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJ0aWR5ciIpCmxpYnJhcnkoImtuaXRyIikKbGlicmFyeSgidGFibGVvbmUiKQpsaWJyYXJ5KCJmb3JjYXRzIikKbGlicmFyeSgic3Vydml2YWwiKQpsaWJyYXJ5KCJucHN1cnYiKQpsaWJyYXJ5KCJicm9vbSIpCmxpYnJhcnkoInRpYmJsZSIpCmxpYnJhcnkoInJlYWRyIikKbGlicmFyeSgic3Vydm1pbmVyIikKbGlicmFyeSgic3RyaW5nciIpCgoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1UUlVFKQonJSFpbiUnIDwtIGZ1bmN0aW9uKHgseSkhKCclaW4lJyh4LHkpKQpgYGAKCmBgYHtyfQpwX3RhYmxlIDwtIGZ1bmN0aW9uKHRhYl9kYXRhLCAuLi4pIHsKICB0YWJfZGF0YV8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZSh0YWJfZGF0YSkpCiAgCiAgdGFibGVfcCA8LSBkby5jYWxsKENyZWF0ZVRhYmxlT25lLCAKICAgICAgICAgICAgICAgICAgICAgbGlzdChkYXRhID0gYXMubmFtZSh0YWJfZGF0YV8yKSwgaW5jbHVkZU5BID0gVFJVRSwgLi4uKSkKICB0YWJsZV9wX291dCA8LSBwcmludCh0YWJsZV9wLAogICAgICAgICAgICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHByaW50VG9nZ2xlID0gRkFMU0UpCiAga2FibGUodGFibGVfcF9vdXQsCiAgICAgICAgYWxpZ24gPSAiYyIpCn0KYGBgCgpgYGB7cn0KdW5pX3ZhciA8LSBmdW5jdGlvbih0ZXN0X3ZhciwgZGF0YV9pbXApIHsKCiAgICAgICAgICAgICAgICAKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIAogICAgICAgIGYgPC0gYXMuZm9ybXVsYShwYXN0ZSgiU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5uYW1lKHRlc3RfdmFyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiB+ICIgKSkKICAgICAgICAKICAgICAgICBkYXRhX2ltcF8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZShkYXRhX2ltcCkpCgogICAgICAgIGttX2ZpdCA8LSBkby5jYWxsKCJzdXJ2Zml0IiwgbGlzdChmb3JtdWxhID0gZiwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKICAgICAgICBwcmludChrbV9maXQpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIHByaW50KHN1bW1hcnkoa21fZml0LCB0aW1lcyA9IGMoMTIsIDI0LCAzNiwgNDgsIDYwLCAxMjApKSkKICAgICAgICBjYXQoIlxuIikKCgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbml2YXJpYWJsZSBDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBNb2RlbCBmb3I6ICIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgbl9sZXZlbHMgPC0gbmxldmVscyhkYXRhX2ltcFtbdGVzdF92YXJdXSkKCiAgICAgICAgaWYobl9sZXZlbHMgPT0gMSl7CiAgICAgICAgICAgICAgICBwcmludCgiT25seSBvbmUgbGV2ZWwsIG5vIENveCBtb2RlbCBwZXJmb3JtZWQiKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIH0gZWxzZSB7CgoKICAgICAgICAgICAgICAgIGNveF9maXQgPC0gZG8uY2FsbCgiY294cGgiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgICAgICAgICAgcHJpbnQoc3VtbWFyeShjb3hfZml0KSkKICAgICAgICAgICAgICAgIGNhdCgiXG4iKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkby5jYWxsKCJnZ2ZvcmVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KG1vZGVsID0gY294X2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKCiAgICAgICAgfQoKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMgVW5hZGp1c3RlZCBLYXBsYW4gTWVpZXIgT3ZlcmFsbCBTdXJ2aXZhbCBDdXJ2ZSBmb3I6ICIsIHRlc3RfdmFyKQoKCiAgICAgICAgcCA8LSBkby5jYWxsKCJnZ3N1cnZwbG90IiwKICAgICAgICAgICAgICAgICAgICAgbGlzdChmaXQgPSBrbV9maXQsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiamNvIiwgY2Vuc29yID0gRkFMU0UsIGxlZ2VuZCA9ICJyaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXR5cGUgPSAic3RyYXRhIiwgeGxhYiA9ICJUaW1lIChNb250aHMpIikpCgogICAgICAgIHByaW50KHApCgp9CgpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCk5ITGV4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfTkhMRXh0ci4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKYnJlYXN0IDwtICByZWFkX2Z3ZignTkNEQlBVRl9CcmVhc3QuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKdnVsdmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1Z1bHZhLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZhZ2luYSA8LSAgcmVhZF9md2YoJ05DREJQVUZfVmFnaW5hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnBlbmlzIDwtICByZWFkX2Z3ZignTkNEQlBVRl9QZW5pcy4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpvdGxldWsgPC0gcmVhZF9md2YoJ05DREJQVUZfT3RMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKb3RoZXJhY3V0ZWxldWsgIDwtIHJlYWRfZndmKCdOQ0RCUFVGX090QWNMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKQUxMICA8LSByZWFkX2Z3ZignTkNEQlBVRl9BTHltTGV1ay4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKI0NvbWJpbmUgZGF0YSBmb3IgYWxsIHN1YnNpdGVzCmRhdCA8LSBiaW5kX3Jvd3MobGlwLCBtZWxhbm9tYSwgc2tpbiwgaG9kZ2V4dHIsIGhvZGduZGFsLCBOSExuZGFsLCBicmVhc3QsIAogICAgICAgICAgICAgICAgIHZ1bHZhLCB2YWdpbmEsIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpybShsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgdnVsdmEsIHZhZ2luYSwgCiAgIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpwcmltX3NpdGVfdGV4dCA8LSBkYXRhX2ZyYW1lKFBSSU1BUllfU0lURSA9IGMoCiNOSEwgc2l0ZXMKIkMwMDAiLCAKIkMwMDEiLCAKIkMwMDIiLCAKIkMwMDMiLCAKIkMwMDQiLCAKIkMwMDUiLCAKIkMwMDYiLCAKIkMwMDgiLAoiQzAwOSIsIAoiQzAxOSIsIAoiQzAyMCIsIAoiQzAyMSIsCiJDMDIyIiwgCiJDMDIzIiwgCiJDMDI0IiwgCiJDMDI4IiwgCiJDMDI5IiwKIkMwMzAiLAoiQzAzMSIsCiJDMDM5IiwgCiJDMDQwIiwgCiJDMDQxIiwgCiJDMDQ4IiwKIkMwNDkiLCAKIkMwNTAiLCAKIkMwNTEiLCAKIkMwNTIiLCAKIkMwNTgiLCAKIkMwNTkiLAoiQzA2MCIsIAoiQzA2MSIsIAoiQzA2MiIsIAoiQzA2OCIsIAoiQzA2OSIsIAoiQzA3OSIsICAKIkMwOTgiLAoiQzA5OSIsCiJDMTExIiwKIkMxNDIiLAoiQzMwMCIsCiJDMzc5IiwKIkM0MjAiLAoiQzQyMiIsCiJDNDI0IiwKCiNza2luL21lbGFub21hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVhc3QgLSBuaXBwbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZhZ2luYS92dWx2YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BlbmlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIsCgoiQzc3MCIsCiJDNzcxIiwKIkM3NzIiLAoiQzc3MyIsCiJDNzc0IiwKIkM3NzUiLAoiQzc3OCIsCiJDNzc5IiksCgpTSVRFX1RFWFQgPSBjKAoiQzAwLjAgRXh0ZXJuYWwgTGlwOiBVcHBlciBOT1MiLAoiQzAwLjEgRXh0ZXJuYWwgTGlwOiBMb3dlciBOT1MiLAoiQzAwLjIgRXh0ZXJuYWwgTGlwOiBOT1MiLAoiQzAwLjMgTGlwOiBVcHBlciBNdWNvc2EiLAoiQzAwLjQgTGlwOiBMb3dlciBNdWNvc2EiLAoiQzAwLjUgTGlwOiBNdWNvc2EgTk9TIiwKIkMwMC42IExpcDogQ29tbWlzc3VyZSIsCiJDMDAuOCBMaXA6IE92ZXJsYXBwaW5nIiwKIkMwMC45IExpcCBOT1MiLAoiQzAxLjkgVG9uZ3VlOiBCYXNlIE5PUyIsCiJDMDIuMCBUb25ndWU6IERvcnNhbCBOT1MiLAoiQzAyLjEgVG9uZ3VlOiBCb3JkZXIsIFRpcCIsCiJDMDIuMiBUb25ndWU6IFZlbnRyYWwgTk9TIiwKIkMwMi4zIFRvbmd1ZTogQW50ZXJpb3IgTk9TIiwKIkMwMi40IExpbmd1YWwgVG9uc2lsIiwKIkMwMi44IFRvbmd1ZTogT3ZlcmxhcHBpbmciLAoiQzAyLjkgVG9uZ3VlOiBOT1MiLAoiQzAzLjAgR3VtOiBVcHBlciIsCiJDMDMuMSBHdW06IExvd2VyIiwKIkMwMy45IEd1bSBOT1MiLAoiQzA0LjAgTW91dGg6IEFudGVyaW9yIEZsb29yIiwKIkMwNC4xIE1vdXRoOiBMYXRlcmFsIEZsb29yIiwKIkMwNC44IE1vdXRoOiBPdmVybGFwcGluZyBGbG9vciIsCiJDMDQuOSBGbG9vciBvZiBNb3V0aCBOT1MiLAoiQzA1LjAgSGFyZCBQYWxhdGUiLAoiQzA1LjEgU29mdCBQYWxhdGUgTk9TIiwKIkMwNS4yIFV2dWxhIiwKIkMwNS44IFBhbGF0ZTogT3ZlcmxhcHBpbmciLAoiQzA1LjkgUGFsYXRlIE5PUyIsCiJDMDYuMCBDaGVlayBNdWNvc2EiLAoiQzA2LjEgTW91dGg6IFZlc3RpYnVsZSIsCiJDMDYuMiBSZXRyb21vbGFyIEFyZWEiLAoiQzA2LjggTW91dGg6IE90aGVyIE92ZXJsYXBwaW5nIiwKIkMwNi45IE1vdXRoIE5PUyIsCiJDMDcuOSBQYXJvdGlkIEdsYW5kIiwKICAiQzA5LjggVG9uc2lsOiBPdmVybGFwcGluZyIsCiAgIkMwOS45IFRvbnNpbCBOT1MiLAogICJDMTEuMSBOYXNvcGhhcnlueDogUG9zdGVyIFdhbGwiLCAKICAiQzE0LjIgV2FsZGV5ZXIgUmluZyIsCiAgIkMzMC4wIE5hc2FsIENhdml0eSIsCiAgIkMzNy45IFRoeW11cyIsCiJDNDIuMCBCbG9vZCIsCiAgIkM0Mi4yIFNwbGVlbiIsCiJDNDIuNCBIZW1hdG9wb2lldGljIE5PUyIsCgogI3NraW4KIkM0NC4wIFNraW4gb2YgbGlwLCBOT1MiLAoiQzQ0LjEgRXllbGlkIiwKIkM0NC4yIEV4dGVybmFsIGVhciIsCiJDNDQuMyBTa2luIG9mIGVhciBhbmQgdW5zcGVjaWZpZWQgcGFydHMgb2YgZmFjZSIsCiJDNDQuNCBTa2luIG9mIHNjYWxwIGFuZCBuZWNrIiwKIkM0NC41IFNraW4gb2YgdHJ1bmsiLAoiQzQ0LjYgU2tpbiBvZiB1cHBlciBsaW1iIGFuZCBzaG91bGRlciIsCiJDNDQuNyBTa2luIG9mIGxvd2VyIGxpbWIgYW5kIGhpcCIsCiJDNDQuOCBPdmVybGFwcGluZyBsZXNpb24gb2Ygc2tpbiIsCiJDNDQuOSBTa2luLCBOT1MiLCAKCiNicmVhc3QKIkM1MC4wIE5pcHBsZSIsCgojdnVsdmEvdmFnaW5hCiJDNTEuMCBMYWJpdW0gbWFqdXMiLAoiQzUxLjEgTGFiaXVtIG1pbnVzIiwKIkM1MS4yIENsaXRvcmlzIiwKIkM1MS44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiB2dWx2YSIsCiJDNTEuOSBWdWx2YSwgTk9TIiwKIkM1Mi45IFZhZ2luYSwgTk9TIiwKCiNwZW5pcwoiQzYwLjAgUHJlcHVjZSIsCiJDNjAuMSBHbGFucyBwZW5pcyIsCiJDNjAuMiBCb2R5IG9mIHBlbmlzIiwKIkM2MC44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiBwZW5pcyIsCiJDNjAuOSBQZW5pcyIsCiJDNjMuMiBTY3JvdHVtLCBOT1MiLAoKICAiQzc3LjAgTHltcGggTm9kZXM6IEhlYWRGYWNlTmVjayIsCiAgIkM3Ny4xIEludHJhdGhvcmFjaWMgTHltcGggTm9kZXMiLAogICJDNzcuMiBJbnRyYS1hYmRvbWluYWwgTHltcGhOb2RlcyIsCiAgIkM3Ny4zIEx5bXBoIE5vZGVzIG9mIGF4aWxsYSBvciBhcm0gIiwKICAiQzc3LjQgTHltcGggTm9kZXM6IExlZyIsCiAgIkM3Ny41IFBlbHZpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny44IEx5bXBoIE5vZGVzOiBtdWx0aXBsZSByZWdpb24iLAogICJDNzcuOSBMeW1waCBOb2RlIE5PUyIpKQoKCmRhdCA8LSBtZXJnZShkYXQsIHByaW1fc2l0ZV90ZXh0LCBieSA9ICJQUklNQVJZX1NJVEUiLCBhbGwueCA9IFRSVUUpIAoKcm0ocHJpbV9zaXRlX3RleHQpCgojIGNvbnZlcnQgbnVtZXJpYyB2YXJpYWJsZXMgZnJvbSBjaGFyYWN0ZXIgY2xhc3MgdG8gbnVtZXJpYyBjbGFzcwpudW1fdmFycyA8LSBjKCJBR0UiLCAiQ1JPV0ZMWSIsICJUVU1PUl9TSVpFIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwKICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsIAogICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwKICAgICAgICAgICAgICAiUkFEX05VTV9UUkVBVF9WT0wiKQoKZGF0W251bV92YXJzXSA8LSBsYXBwbHkoZGF0W251bV92YXJzXSwgYXMubnVtZXJpYykKCgojIGNvbnZlcnQgZmFjdG9yIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBmYWN0b3IgY2xhc3MKdmFycyA8LSBuYW1lcyhkYXQpCmZhY3RfdmFycyA8LSB2YXJzWyEodmFycyAlaW4lIG51bV92YXJzKV0gIyBiYXNpY2FsbHkgYWxsIG9mIHRoZSBub24tbnVtZXJpY3MKCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuY2hhcmFjdGVyKQpkYXRbZmFjdF92YXJzXSA8LSBsYXBwbHkoZGF0W2ZhY3RfdmFyc10sIGFzLmZhY3RvcikKCmRhdCA8LSBkYXQgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX1RZUEVfRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfVFlQRV9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbXVuaXR5IENhbmNlciBQcm9ncmFtIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tcHJlaGVuc2l2ZSBDb21tIENhIFByb2dyYW0iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY2FkZW1pYy9SZXNlYXJjaCBQcm9ncmFtIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZWdyYXRlZCBOZXR3b3JrIENhIFByb2dyYW0iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfTE9DQVRJT05fRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfTE9DQVRJT05fQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBFbmdsYW5kIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIEF0bGFudGljIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGggQXRsYW50aWMiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IE5vcnRoIENlbnRyYWwiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IFNvdXRoIENlbnRyYWwiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IE5vcnRoIENlbnRyYWwiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IFNvdXRoIENlbnRyYWwiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMiID0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQgb2YgVVMiID0gIjAiKSkgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX0dFT0dSQVBIWSA9IGZjdF9jb2xsYXBzZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3J0aGVhc3QiID0gYygiMSIsICIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGgiID0gYygiMyIsICI3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkd2VzdCIgPSBjKCI0IiwgIjUiLCAiNiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFX0YgPSBjdXQoQUdFLCBjKDAsIDU0LCA2NCwgNzQsIDEwMCkpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFXzQwID0gY3V0KEFHRSwgYygwLCA0MCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShTRVhfRiA9IGZjdF9yZWNvZGUoU0VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmVtYWxlIiA9ICIyIikpICU+JQogICAgICAgIG11dGF0ZShSQUNFX0YgPSBmY3RfY29sbGFwc2UoUkFDRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGUiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxhY2siID0gYygiMDIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNpYW4iID0gYygiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLCAiMTQiLCAiMTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNiIsICIxNyIsICIyMCIsICIyMSIsICIyMiIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsICIzMCIsICIzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMyIiwgIjk2IiwgIjk3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyL1VuayIgPSBjKCIwMyIsICI5OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1BBTklDID0gZmN0X2NvbGxhcHNlKFNQQU5JU0hfSElTUEFOSUNfT1JJR0lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiA9IGMoIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSBjKCI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU5TVVJBTkNFX0YgPSBmY3RfcmVjb2RlKElOU1VSQU5DRV9TVEFUVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWNhaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FyZSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIEdvdmVybm1lbnQiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWxldmVsKElOU1VSQU5DRV9GLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIikpICU+JQogICAgICAgIG11dGF0ZShJTkNPTUVfRiA9IGZjdF9yZWNvZGUoTUVEX0lOQ19RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gJDM4LDAwMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQzOCwwMDAgLSAkNDcsOTk5IiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDQ4LDAwMCAtICQ2Miw5OTkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNjMsMDAwICsiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKEVEVUNBVElPTl9GID0gZmN0X3JlY29kZShOT19IU0RfUVVBUl8xMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMSUgb3IgbW9yZSIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTMgLSAyMC45JSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyAtIDEyLjklIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gNyUiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFVfUl9GID0gZmN0X2NvbGxhcHNlKFVSX0NEXzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0cm8iID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVyYmFuIiA9IGMoIjQiLCAiNSIsICI2IiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1cmFsIiA9IGMoIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKENMQVNTX09GX0NBU0VfRiA9IGZjdF9jb2xsYXBzZShDTEFTU19PRl9DQVNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsX1BhcnRfUHJpbSA9IGMoIjEwIiwgIjExIiwgIjEyIiwgIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNCIsICIyMCIsICIyMSIsICIyMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJfRmFjaWxpdHkgPSBjKCIwMCIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEdSQURFX0YgPSBmY3RfcmVjb2RlKEdSQURFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIEk6IFdlbGwgRGlmZiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSUk6IE1vZCBEaWZmIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSUk6IFBvb3IgRGlmZiIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSVY6IFVuZGlmZi9BbmFwbGFzdGljIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQS9Vbmtvd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1RPTE9HWV9GID0gZmN0X2luZnJlcShISVNUT0xPR1kpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmYWN0b3IoSElTVE9MT0dZX0YpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0ZfTElNID0gZmN0X2x1bXAoSElTVE9MT0dZX0YsIHByb3AgPSAwLjA1KSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVjb2RlKFROTV9DTElOX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9UID0gZmN0X3JlbGV2ZWwoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9OID0gZmN0X3JlY29kZShUTk1fQ0xJTl9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fTSA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9UID0gZmN0X3JlbGV2ZWwoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9OID0gZmN0X3JlY29kZShUTk1fUEFUSF9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfTSA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fQ0xJTl9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fUEFUSF9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlMgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJlc2lkdWFsIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc2lkdWFsLCBOT1MiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgUmVzaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFjcm9zY29waWMgUmVzaWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGV2YWx1YWJsZSIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlNfWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnL1Vuay9OQSIgPSBjKCI3IiwgIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFJFQURNX0hPU1BfMzBfREFZU19GID0gZmN0X3JlY29kZShSRUFETV9IT1NQXzMwX0RBWVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZ19vcl9Ob19SZWFkbWl0IiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnBsYW5fUmVhZG1pdF9TYW1lIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuX1JlYWRtaXRfU2FtZSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhblVucGxhbl9TYW1lIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI0IikpICU+JQogICAgICAgIG11dGF0ZShSWF9TVU1NX1JBRElBVElPTl9GID0gZmN0X3JlY29kZShSWF9TVU1NX1JBRElBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmVhbSBSYWRpYXRpb24iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9hY3RpdmUgSW1wbGFudHMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9pc290b3BlcyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtICsgSW1wIG9yIElzb3RvcGVzIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZGlhdGlvbiwgTk9TIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl8zMF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfMzBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfMzAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfMzAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl85MF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfOTBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfOTAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfOTAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YgPSBmY3RfcmVjb2RlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVnX0x5bXBoVmFzY19JbnYiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zX0x1bXBoVmFzY19JbnYiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiA9IGZjdF9yZWNvZGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZyIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X0Fzc2lzdCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X3RvX09wZW4iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbmRvX0xhcCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwX3RvX09wZW4iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuX1Vua25vd24iID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShBbGwgPSAiQWxsIikgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9IGZhY3RvcihBbGwpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcgZHVlIHRvIHB0IGZhY3RvcnMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHB0IHJlZnVzZWQiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19URiA9IGNhc2Vfd2hlbihTVVJHRVJZX1lOID09ICJZZXMiIH4gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJHRVJZX1lOID09ICJObyIgfiBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gTkEpKSAgJT4lCiAgICAgICAgbXV0YXRlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBwZXJmb3JtZWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJhZCBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkLCBwdCBkaWVkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgdW5rIGlmIGRvbmUiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1JBRElBVElPTiA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdSQURfU0VRX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIG9yIFN1cmcgb3IgUmFkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgU3VyZyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIGJlZm9yZSBSYWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCBwbHVzIG90aGVyIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUSA9IGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gZmN0X3JlbGV2ZWwoU1VSR19SQURfU0VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIpKSAlPiUKICAgICAgICBtdXRhdGUoQ0hFTU9fWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9DSEVNTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiLCAiMDIiLCAiMDMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiwgRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoQ0hFTU9fWU4gPT0gIlVrbiIsIE5BLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpKSkKCmZhY3RfdmFyc18yIDwtIGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkFHRV9GIiwgIlNFWF9GIiwgIlJBQ0VfRiIsCiAgICAgICAgICAgICAgICAgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwKICAgICAgICAgICAgICAgICAiQ0RDQ19UT1RBTF9CRVNUIiwgIkNMQVNTX09GX0NBU0VfRiIsICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZIiwKICAgICAgICAgICAgICAgICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwKICAgICAgICAgICAgICAgICAiTUFSR0lOUyIsICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAibWV0c19hdF9keCIpCgoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGVfYXQoZmFjdF92YXJzXzIsIGZ1bnMoZmFjdG9yKC4pKSkKCmBgYAoKCiMgRXh0cmFjdCBEYXRhIG9mIEludGVyZXN0CgpgYGB7cn0KCgojIE5vbi1Ib2Rna2luIEx5bXBob21hIFNpdGVzCnNpdGVfY29kZSA8LSBjKCAKI2FkZGl0aW9uYWwgc2l0ZXMKCiAjbGlwICAKICAiQzAwMCIsICJDMDAxIiwgIkMwMDIiLCAiQzAwMyIsICJDMDA0IiwgIkMwMDUiLCJDMDA2IiwgIkMwMDgiLCJDMDA5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3NraW4vbWVsYW5vbWEKICAiQzQ0MCIsICJDNDQxIiwgIkM0NDIiLCAiQzQ0MyIsICJDNDQ0IiwgIkM0NDUiLCAiQzQ0NiIsICJDNDQ3IiwgIkM0NDgiLCAiQzQ0OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2JyZWFzdCAtIG5pcHBsZQogICJDNTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiN2YWdpbmEvdnVsdmEKICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3BlbmlzCiAiQzYwMCIsICJDNjAxIiwgIkM2MDIiLCAiQzYwOCIsICJDNjA5IiwgIkM2MzkiKQoKI215Y29zaXMgZnVuZ29pZGVzLCBTZXphcnkgc3luZHJvbWUsIHN1YmN1dGFuZW91cyBwYW5uaWN1bGl0aXMtbGlrZSBULWNlbGwgbHltcGhvbWEsCiNjdXRhbmVvdXMgVC1jZWxsIGx5bXBob21hLCBOT1MsIHByaW1hcnkgY3V0YW5lb3VzIENEMzArVC1jZWxsIGx5bXBob21hLCAKI05LL1QtY2VsbCBseW1waG9tYSwgcHJpbWFyeSBjdXRhbmVvdXMgZ2FtbWEtZGVsdGEgVC1jZWxsIGx5bXBob21hLCAKI2FuZCBibGFzdGljIE5LIGNlbGwgbHltcGhvbWEsIHJlc3BlY3RpdmVseQpoaXN0b19jb2RlIDwtIGMoIjk3MDAiLCAiOTcwMSIsICI5NzA4IiwgIjk3MDkiLCAiOTcxOCIsICI5NzE5IiwgIjk3MjYiLCAiOTcyNyIpCgpiZWhhdmlvcl9jb2RlIDwtIGMoIjMiKQoKZGF0YSA8LSBkYXQgJT4lCiAgICAgICAgZmlsdGVyKEJFSEFWSU9SICVpbiUgYmVoYXZpb3JfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKFBSSU1BUllfU0lURSAlaW4lIHNpdGVfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKEhJU1RPTE9HWSAlaW4lIGhpc3RvX2NvZGUpICU+JQogICAgICAgICNmaWx0ZXIoQUdFID49IDE4KSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoUFVGX1ZJVEFMX1NUQVRVUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMpID09IEZBTFNFKSAgJT4lCiAgICAgICAgZmlsdGVyKFNFUVVFTkNFX05VTUJFUiA9PSAiMDAiKSAKCiNmaWxlX3BhdGggPC0gYygiL1VzZXJzL2JlYXN0YXRsaWZlL0dvb2dsZSBEcml2ZS9QZW5uL1Jlc2VhcmNoL0JhcmJpZXJpL05DREIiKQojc2F2ZShkYXRhLAojICAgICAgZmlsZSA9IHBhc3RlMChmaWxlX3BhdGgsICIvQ1RDTF9kYXRhLlJkYSIpKQpgYGAKCmBgYHtyIGxvYWREYXRhfQojbG9hZCgiTUZfZGF0YS5SZGEiKQpgYGAKCgpEYXRhIGluY2x1ZGluZyBza2luIHR1bW9ycyB3YXMgb2J0YWluZWQgZnJvbSB0aGUgTkNCRCBvbiBPY3RvYmVyIDcsIDIwMTkuIENhc2VzIHRoYXQgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIGFuYWx5c2lzIHdlcmUgdGhvc2Ugd2l0aDoKCjEuIFNpdGUgY29kZXM6IGByIHNpdGVfY29kZWAKMi4gSGlzdG9sb2d5IGNvZGVzOiBgciBoaXN0b19jb2RlYAozLiBCZWhhdmlvciBjb2RlczogYHIgYmVoYXZpb3JfY29kZWAKCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgZGlkbid0IGhhdmUgdmFsdWVzIGZvciBlaXRoZXIgZm9sbG93IHVwIG9yIHZpdGFsIHN0YXR1cy4KClBhdGllbnRzIHdlcmUgZXhjbHVkZWQgaWYgdGhleSBoYWQgc3VyZ2VyeSB0byBhIGRpc3RhbnQgc2l0ZSB1c2luZyBgUlhfU1VNTV9TVVJHX09USF9SRUdESVNgLiBUaGlzIHdhcyBkb25lIHRvIGF2b2lkIGNvbmZvdW5kaW5nIG9mIGRpZmZlcmVudCBzdXJnaWNhbCBwcm9jZWR1cmVzLiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHN1cmdlcnkgYXQgdGhlIHByaW1hcnkgc2l0ZS4gVGhlc2UgZGlzdGFudCBzaXRlIHN1cmdlcmllcyB3ZXJlIGJlaW5nIGNvdW50ZWQgaW4gdGhlIHN1cmdlcnkvcmFkaWF0aW9uIHNlcXVlbmNlIGFuZCB0aHVzIHRvIHNpbXBsaWZ5IGFuYWx5c2lzIHRoZXkgd2VyZSByZW1vdmVkLiAKCmBgYHtyfQoKZGF0YSAlPiUKICAgICAgICBDcmVhdGVUYWJsZU9uZShkYXRhID0gLiwKICAgICAgICAgICAgICAgICAgICAgdmFycyA9IGMoIlJYX1NVTU1fU1VSR19PVEhfUkVHRElTIiksCiAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVOQSA9IFRSVUUpICU+JQogICAgICAgIHByaW50KC4sCiAgICAgICAgICAgICAgc2hvd0FsbExldmVscyA9IFRSVUUpCgpkYXRhIDwtIGRhdGEgJT4lCiAgICAgICAgZmlsdGVyKFJYX1NVTU1fU1VSR19PVEhfUkVHRElTID09ICIwIikgCmBgYAoKClJhY2Ugd2FzIGdyb3VwZWQgYXMgd2hpdGUsIGJsYWNrLCBhc2lhbiwgb3RoZXIvdW5rbm93bgpTdGFnZSB3YXMgZ3JvdXBlZCBpbnRvIDAsIEksIElJLCBJSUksIElWLCBOQV9Vbmtub3duLCBzdGFnZSAwIHdhcyByZW1vdmVkCldoZXRoZXIgc3VyZ2VyeSB3YXMgcGVyZm9ybWVkIHdhcyBiYXNlZCBvbiB0aGUgYFJFQVNPTl9GT1JfTk9fU1VSR0VSWWAgdmFyaWFibGUuIFRoZSBgU1VSR0VSWV9ZTmAgdmFyaWFibGUgd2FzIGNsYXNzaWZpZWQgYXMgJ1llcycsICdObycsIG9yICdVbmtub3duJy4KCgpXaGV0aGVyIHJhZGlhdGlvbiB3YXMgcGVyZm9ybWVkIHdhcyBiYXNlZCBvbiB0aGUgYFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OYCB2YXJpYWJsZS4gVGhlIGBSQURJQVRJT05fWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKCiNUYWJsZSBvZiB2YXJpYWJsZXMgZm9yIGFsbCBjYXNlczoKCgoKYGBge3J9CnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiLCAiRVhQTl9HUk9VUCIpKQpgYGAKCmBgYHtyfQoKcHJlRXhwTWVkaWNhcmUgIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iICYgSU5TVVJBTkNFX0YgPT0gIk1lZGljYXJlIikpCnBvc3RFeHBNZWRpY2FyZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKCiMgcCA9IDAuMjUgd2hlbiBjb21wYXJpbmcgY2hhbmdlIGluIHByb3BvcnRpb24gb2YgcGF0aWVudHMgd2l0aCBNZWRpY2FyZSBiZWZvcmUgYW5kIGFmdGVyIEFDQSBleHBhbnNpb24KcHJvcC50ZXN0KGMocHJlRXhwTWVkaWNhcmUsIHBvc3RFeHBNZWRpY2FyZSksIAogICAgICAgICAgYyhucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikpLCBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpKSkpCgpwcmVFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKElOU1VSQU5DRV9GID09ICJOb25lIikpCnBvc3RFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKCiMgU2lnbmlmaWNhbnQgZGVjcmVhc2UgaW4gdGhlIG92ZXJhbGwgcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRob3V0IGluc3VyYW5jZSBhZnRlciBBQ0EgZXhwYW5zaW9uIApwcm9wLnRlc3QoYyhwcmVFeHBOb0luc3VyYW5jZSwgcG9zdEV4cE5vSW5zdXJhbmNlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnBfdGFibGUobm9fRXhjbHVkZXMsIHN0cmF0YSA9ICJFWFBOX0dST1VQIiwgdmFycyA9ICJEWF9SWF9TVEFSVEVEX0RBWVMiKQoKZGF0YSA8LSBkYXRhICU+JSBtdXRhdGUoSW5zdXJlZCA9IElOU1VSQU5DRV9GICE9ICJVbmtub3duIikKCmBgYAoKCgoKI0thcGxhbiBNZWllciBBbmFseXNpcwoKCiMjQWxsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJBbGwiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBUeXBlCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX1RZUEVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IExvY2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9MT0NBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgR2VvZ3JhcGh5CgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9HRU9HUkFQSFkiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQWdlIEdyb3VwCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV80MCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0dlbmRlcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU0VYX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSQUNFX0YKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBQ0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0hpc3BhbmljCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNQQU5JQyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0luc3VyYW5jZSBTdGF0dXMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIklOU1VSQU5DRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjT3ZlcmFsbCBTdXJ2aXZhbCBwcmUvcG9zdC1BQ0EgZXhwYW5zaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFWFBOX0dST1VQIiwgZGF0YV9pbXAgPSBub19FeGNsdWRlcykKYGBgCgoKPCEtLSAjI0luY29tZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIGNsYXNzKGRhdGEkSU5DT01FX0YpIC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiSU5DT01FX0YiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjRWR1Y2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFRFVDQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1VyYmFuL1J1cmFsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJVX1JfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsYXNzICh0cmVhdG1lbnQgYXQgcGVyZm9ybWluZyBmYWNpbGl0eSkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNMQVNTX09GX0NBU0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1llYXIKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIllFQVJfT0ZfRElBR05PU0lTIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUHJpbWFyeSBTaXRlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTSVRFX1RFWFQiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjSGlzdG9sb2d5CgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiSElTVE9MT0dZX0ZfTElNIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNCZWhhdmlvciAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiQkVIQVZJT1IiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjR3JhZGUKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJHUkFERV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgVCBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIE4gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0NsaW5pY2FsIE0gU3RhZ2UgLS0+Cgo8IS0tIGBgYHtyfSAtLT4KPCEtLSB1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX00iLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjQ2xpbmljYWwgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBUIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBOIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9OIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBNIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9NIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zIFllcy9ObwpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOU19ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojIzMwIERheSBSZWFkbWlzc2lvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkVBRE1fSE9TUF8zMF9EQVlTX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gVHlwZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfU1VNTV9SQURJQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNMeW1waG92YXNjdWxhciBJbnZhc2lvbgoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNFbmRvc2NvcGljL1JvYm90aWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1N1cmdlcnkgUmFkaWF0aW9uIFNlcXVlbmNlIAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR19SQURfU0VRIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNVUkdFUllfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSQURJQVRJT05fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDaGVtbyBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNIRU1PX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI1RyZWF0bWVudCBZZXMvTm8KYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVHhfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNZXRhc3Rhc2VzIGF0IER4CmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIm1ldHNfYXRfZHhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjVHVtb3IgU2l6ZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVF9TSVpFIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojVHVtb3Igc3BlY2lmaWMgVmFyaWFibGVzCgoKIyMjTm9kZSBTaXplCgoKI0NveCBQcm9wb3J0aW9uYWwgSGF6YXJkIFJhdGlvCgojI01vZGVsICMxCgojIyNGdWxsIGFuYWx5c2lzCgpgYGB7cn0KbW9kZWxfb25lIDwtIGNveHBoKFN1cnYoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTLCBQVUZfVklUQUxfU1RBVFVTID09IDApCiAgICAgICAgICAgICAgICAgICAgIH4gU1VSR19SQURfU0VRICsgSU5TVVJBTkNFX0YgKyBBR0UgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GLAogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSkKbW9kZWxfb25lICU+JSBzdW1tYXJ5KCkKCgpgYGAKCiMjI1N1bW1hcnkgb2YgTW9kZWwKCmBgYHtyfQptb2RlbF9vbmUgJT4lCiAgICAgICAgdGlkeSguLCBleHBvbmVudGlhdGUgPSBUUlVFKSAlPiUKICAgICAgICBzZWxlY3QodGVybSwgZXN0aW1hdGUsIGNvbmYubG93LCBjb25mLmhpZ2gsIHAudmFsdWUpICU+JQogICAgICAgIHJlbmFtZShWYXJpYWJsZSA9IHRlcm0sCiAgICAgICAgICAgICAgIEhhemFyZF9SYXRpbyA9IGVzdGltYXRlKSAlPiUKICAgICAgICB0YmxfZGYgJT4lCiAgICAgICAgcHJpbnQobiA9IG5yb3coLikpCgpgYGAKCiMgUHJlZGljdGlvbiBMb2dpc3RpYyBSZWdyZXNzaW9uIE1vZGVscwoKIyMgU3VyZ2VyeQpgYGB7cn0KCm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoU1VSR0VSWV9ZTiAhPSAiVWtuIikgJT4lIAogIGRyb3BsZXZlbHMoKSAlPiUgCiAgbXV0YXRlKFNVUkdFUllfWU4gPSBhcy5sb2dpY2FsKFNVUkdFUllfWU4pKQoKZml0X3N1cmcgPC0gZ2xtKFNVUkdfVEYgfiBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQLAogICBkYXRhID0gbm9fVWtucykKCnN1bW1hcnkoZml0X3N1cmcpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfc3VyZyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYAoKIyMgTWV0YXN0YXNpcyBhdCBUaW1lIG9mIERpYWdub3NpcwpgYGB7cn0KIyBsaW1pdCB0byB0aG9zZSBjYXNlcyB3aGVyZSBkYXRhIGFib3V0IGV4cGFuc2lvbiBzdGF0dXMgaXMgYXZhaWxhYmxlICg+IEFnZSAzOSwgbm9uLWFtYmlndW91cyBzdGF0dXMgc3RhdGVzKQoKZml0X21ldHMgPC0gZ2xtKG1ldHNfYXRfZHhfRiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19FeGNsdWRlcykKCnN1bW1hcnkoZml0X21ldHMpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfbWV0cyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYA==